vue使用xlsx完成表格导出

安装依赖

指定版本是为了防止在使用过程中出现 utils 报错

npm install xlsx@0.17.0
npm install file-saver@2.0.5

Export2Excel.js

/* eslint-disable */
import {
    saveAs } from "file-saver";
import XLSX from "xlsx";

function generateArray(table) {
   
  var out = [];
  var rows = table.querySelectorAll("tr");
  var ranges = [];
  for (var R = 0; R < rows.length; ++R) {
   
    var outRow = [];
    var row = rows[R];
    var columns = row.querySelectorAll("td");
    for (var C = 0; C < columns.length; ++C) {
   
      var cell = columns[C];
      var colspan = cell.getAttribute("colspan");
      var rowspan = cell.getAttribute("rowspan");
      var cellValue = cell.innerText;
      if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue;

      //Skip ranges
      ranges.forEach(function(range) {
   
        if (
          R >= range.s.r &&
          R <= range.e.r &&
          outRow.length >= range.s.c &&
          outRow.length <= range.e.c
        ) {
   
          for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null);
        }
      });

      //Handle Row Span
      if (rowspan || colspan) {
   
        rowspan = rowspan || 1;
        colspan = colspan || 1;
        ranges.push({
   
          s: {
   
            r: R,
            c: outRow.length,
          },
          e: {
   
            r: R + rowspan - 1,
            c: outRow.length + colspan - 1,
          },
        });
      }

      //Handle Value
      ou
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Vue使用XLSX导出嵌套表格,您需要安装和导入XLSX插件。XLSX插件支持将数据导出为Excel文件。以下是一些步骤: 1. 安装XLSX插件: ``` npm install xlsx ``` 2. 在Vue组件中导入XLSX: ``` import XLSX from 'xlsx' ``` 3. 创建一个方法来导出表格: ``` exportTable() { const wb = XLSX.utils.book_new() // 创建一个名为“Sheet1”的工作表 const ws1 = XLSX.utils.json_to_sheet(this.tableData) // 创建一个名为“Sheet2”的工作表 const ws2 = XLSX.utils.json_to_sheet(this.nestedTableData) // 将工作表添加到工作簿中 XLSX.utils.book_append_sheet(wb, ws1, 'Sheet1') XLSX.utils.book_append_sheet(wb, ws2, 'Sheet2') // 将工作簿转换为二进制文件 const wbout = XLSX.write(wb, {bookType: 'xlsx', type: 'binary'}) // 下载Excel文件 saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), 'table.xlsx') } ``` 在这个例子中,我们创建了两个工作表(`ws1`和`ws2`),并将它们添加到工作簿中。我们使用`XLSX.write`方法将工作簿转换为二进制文件,然后将其下载到本地计算机。 4. 创建一个辅助函数`s2ab`,用于将字符串转换为ArrayBuffer: ``` function s2ab(s) { const buf = new ArrayBuffer(s.length) const view = new Uint8Array(buf) for (let i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF return buf } ``` 这个函数将字符串转换为ArrayBuffer,以便我们可以将其下载为Excel文件。 5. 添加一个按钮或其他触发器,以调用`exportTable`方法: ``` <button @click="exportTable">Export Table</button> ``` 以上是使用XLSX导出表格嵌套表格的基本步骤。您可以根据需要修改代码,以适应您的应用程序需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值