首页 > 解决方案 > 如何将数据分离到同一个 Excel 文件中的新工作表中

问题描述

如果我在 array2D 中有数据,并且我想将每个设备分隔到 excel 文件中的每个工作表中。从下面的代码中,我必须更改 exportToCSV() 以解决此问题。

const rows = [
  ["DeviceA"]
  ["Date/Time", "smokeSensor", "fireSensor"],
  ["190501 00:01", "200", "700"],
  ["190501 00:02", "300", "750"],
  ["190502 00:01", "20", "780"],
  ["190502 00:02", "30", "630"],
  [""],
  ["DeviceB"],
  ["Date/Time", "smokeSensor", "fireSensor"],
  ["190501 00:01", "100", "600"],
  ["190501 00:02", "110", "522"],
  ["190502 00:01", "120", ""],
  ["190502 00:02", "130", ""],
];

function exportToCSV(rows) {
      let csvContent = ""
      rows.forEach(function(rowArray) {
          let row = rowArray.join(",")
          csvContent += row + "\r\n"
      });
      var link = document.createElement("a")
      document.body.appendChild(link)
      // var blob = new Blob([csvContent], {type: "text/csv"}); 
      var blob = new Blob([csvContent], {type: "xls/xlsx"})
      var url = window.URL.createObjectURL(blob)
      link.setAttribute("href", url)
      link.setAttribute("download", "my_data.csv")
      link.click() /* Download the data file named "my_data.csv". */
}

标签: javascriptcsvobjectexport-to-excel

解决方案


CSV 不支持在工作表中分离数据。

我创建了一个名为ExcellentExport的JavaScript 库来将表或数组导出到CSV 或Excel。

excel 导出支持工作表:

ExcellentExport.convert({ anchor: this, filename: 'data_123.array', format: 'xlsx'}, [
    {name: 'Sheet Name Here 1', from: {array: yourArray1}},
    {name: 'Sheet 2', from: {array: yourArray2}},
]);

推荐阅读