FE - Vue 使用 XLSL 导出 excel 文件

库地址:

SheetJS - js-xlsx

可能需要的其他库:filesaveJS

package.json

 "xlsx": "^0.11.6",
 "file-saverjs": "^1.3.6"

数据格式

可单独写个接口为下载 excel 文件操作

      [
               ['cols1','cols2','cols3'],
               ['data1','data2','data3']
      ]

使用

<tmplate></template>
<script>
  // xlsx 导出插件
  import XLSX from 'xlsx'
  import XLSX_SAVE from  'file-saver'

  // xlsx 文件输出操作方法
  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;
  }
export defalut {
  ...
  method: {
     downloadExcel(data){
           /**
             * 数据导出格式为
             * [
             *   ['cols1','cols2','cols3'],
             *   ['data1','data2','data3']
             * ]
             */
            let data = [
                       ['cols1','cols2'],
                       ['data1','data2']
                 ]
            // covert json to sheet
            const ws = XLSX.utils.aoa_to_sheet(data);
            const wb = XLSX.utils.book_new();
            XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
            // save
            const wbout = XLSX.write(wb, {type: "binary", bookType: "xlsx"})
            XLSX_SAVE.saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), "exampleExcel.xlsx");

     }
  }
}
<script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值