前端JS实现导出xlsx文件

需求背景: 需要导出表格的数据,由于后端不提供导出接口,所以由前端通过JSON数据导出实现。
使用的插件:js-export-excel

安装: npm install js-export-excel

javascript 复制代码
// 导入依赖
const ExportJsonExcel = require('js-export-excel');
/** 
 * JSON数据-文件导出
 *@param data [ 要导出的 object 数据] 
 **/
const exportFile = (data: any, fileName?: string) => {
  let sheetData = [];
  // 处理数据
  data.forEach((item) => {
    /** 表头为参考示例,请根据实际情况自定义
    * sheetHeader: [ '姓名', '年龄', '性别', '职业', '爱好'],
    * sheetData: [['name', 'age', 'gender', 'career', 'hobby']],
    **/
    sheetData.push([
      item.name,
      item.age,
      item.gender,
      item.career,
      item.hobby
    ]);
  });
  
  // 导出文件配置
  const option: {
    fileName?: string;
    datas?: any;
  } = {};

  option.fileName = fileName || '文件名称'; // 自定义文件名

  option.datas = [
    {
      // 工作表名称
      sheetName: 'sheet',
      // 表头
      sheetHeader: [ '姓名', '年龄', '性别', '职业', '爱好'], 
      // 自定义列宽
      columnWidths: [10, 5, 5, 5, 10],
      sheetData: sheetData,
    },
  ];

  const toExcel = new ExportJsonExcel(option);
  //保存
  toExcel.saveExcel();
};

使用:

js 复制代码
// 自己的table 数据
exportFile (tableData, 'test');

亲测有用,只要前端能拿到的是表格全量数据,就能直接导出表格所有数据。但如果是后端分页查询的表格,前端每次只能查10条或20条的话,那当前每次也只能导出10条20条。不然的话需要前端存一下所有的数据才能一次导出所有,或者后端配合提供接口返回所有数据。

相关推荐
谢尔登19 分钟前
【React】React 18 并发特性
前端·react.js·前端框架
Joker`s smile22 分钟前
使用React+ant Table 实现 表格无限循环滚动播放
前端·javascript·react.js
国家不保护废物27 分钟前
🌟 React 魔法学院入学指南:从零构建你的第一个魔法阵(项目)!
前端·react.js·架构
然我27 分钟前
从原生 JS 到 React:手把手带你开启 React 业务开发之旅
javascript·react.js·前端框架
import_random29 分钟前
[机器学习]svm支持向量机(优势在哪里)
前端
国家不保护废物30 分钟前
从刀耕火种到现代框架:DOM编程 vs Vue/React 进化史
前端·vue.js·react.js
陈随易30 分钟前
Univer v0.8.0 发布,开源免费版 Google Sheets
前端·后端·程序员
wkj00135 分钟前
QuaggaJS 配置参数详解
java·linux·服务器·javascript·quaggajs
不怎么爱学习的dan36 分钟前
实现 ECharts 多国地区可视化方案
前端
嘉小华36 分钟前
Android Lifecycle 状态同步与分发机制深度解析
前端