表格导出 插件xlsx

该代码段展示了一个JavaScript函数,用于将接收到的JSON数据转换并导出为Excel文件。它创建工作表,处理数据表头,并利用XLSX库生成Excel文件。此外,函数支持自定义文件名、表头和工作表名称。
摘要由CSDN通过智能技术生成

 

 "xlsx": "^0.18.5"
import * as XLSX from "xlsx";
console.log(XLSX);
/*
    * @description:
    * @param {Object} json 服务端发过来的数据
    * @param {String} name 导出Excel文件名字
   
    * @param {String} titleArr 导出Excel表头
   
    * @param {String} sheetName 导出sheetName名字
    * @return:
    */
export function exportExcel(json, name, titleArr, sheetName) {
  /* convert state to workbook */
  var data = new Array();
  var keyArray = new Array();
  const getLength = function (obj) {
    var count = 0;
    for (var i in obj) {
      if (Object.prototype.hasOwnProperty.call(obj, i)) {
        count++;
      }
    }
    return count;
  };
  for (const key1 in json) {
    if (Object.prototype.hasOwnProperty.call(json, key1)) {
      const element = json[key1];
      var rowDataArray = new Array();
      for (const key2 in element) {
        if (Object.prototype.hasOwnProperty.call(element, key2)) {
          const element2 = element[key2];
          rowDataArray.push(element2);
          if (keyArray.length < getLength(element)) {
            keyArray.push(key2);
          }
        }
      }
      data.push(rowDataArray);
    }
  }
  // keyArray为英文字段表头
  data.splice(0, 0, keyArray, titleArr);
  console.log("data", data);
  const ws = XLSX.utils.aoa_to_sheet(data);

  const wb = XLSX.utils.book_new();
  // 此处隐藏英文字段表头
  var wsrows = [{ hidden: true }];
  ws["!rows"] = wsrows; // ws - worksheet
  XLSX.utils.book_append_sheet(wb, ws, sheetName);
  /* generate file and send to client */
  XLSX.writeFile(wb, name + ".xlsx");
}
const getExel = () => {
  let name = store.state.computedInfo.simulationName;
  let params = JSON.parse(JSON.stringify(data.simulationResData));
  let titleSensor; //表头中文名
  if (!tableSensorItemChange.value) {
    params = params.map((item) => {
      delete item.sensorName;
      return item;
    });
    titleSensor = ["观测实体", "观测载荷", "开始时间", "结束时间"]; //表头中文名
  } else {
    titleSensor = [
      "观测实体",
      "被观测实体",
      "观测载荷",
      "开始时间",
      "结束时间",
    ]; //表头中文名
  }
  exportExcel(params, name, titleSensor, "sheetName");
};

以下是介绍两个常用的前端插件来实现HTML表格Excel导出的方法: 1. TableExport.js插件 TableExport.js是一个轻量级的jQuery插件,可以将HTML表格导出为Excel、CSV、TXT和PDF格式。使用该插件需要引入jQuery库和TableExport.js文件。 ```html <!-- 引入jQuery库 --> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> <!-- 引入TableExport.js文件 --> <script src="https://cdn.bootcss.com/TableExport/5.2.0/js/tableexport.min.js"></script> ``` 然后在需要导出表格上添加`data-tableexport`属性,并设置导出格式和文件名: ```html <table id="myTable"> <thead> <tr> <th>Name</th> <th>Age</th> <th>Gender</th> </tr> </thead> <tbody> <tr> <td>John</td> <td>25</td> <td>Male</td> </tr> <tr> <td>Jane</td> <td>30</td> <td>Female</td> </tr> </tbody> </table> <button onclick="exportTable()">Export Table</button> <script> function exportTable() { $('#myTable').tableExport({ type: 'xlsx', // 导出Excel格式 fileName: 'myTable', // 导出文件名 }); } </script> ``` 2. SheetJS.js插件 SheetJS.js是一个纯JavaScript库,可以将HTML表格导出为Excel、CSV和JSON格式。使用该插件需要引入SheetJS.js文件。 ```html <!-- 引入SheetJS.js文件 --> <script src="https://cdn.bootcss.com/xlsx/0.16.8/xlsx.full.min.js"></script> ``` 然后在需要导出表格上添加`id`属性: ```html <table id="myTable"> <thead> <tr> <th>Name</th> <th>Age</th> <th>Gender</th> </tr> </thead> <tbody> <tr> <td>John</td> <td>25</td> <td>Male</td> </tr> <tr> <td>Jane</td> <td>30</td> <td>Female</td> </tr> </tbody> </table> <button onclick="exportTable()">Export Table</button> <script> function exportTable() { /* 获取表格数据 */ var wb = XLSX.utils.table_to_book(document.getElementById('myTable'), {sheet:"Sheet1"}); /* 导出Excel文件 */ XLSX.writeFile(wb, 'myTable.xlsx'); } </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值