【使用SheetJS实现在网页端导出 Excel 表格保存(js-xlsx)】

【使用SheetJS实现在网页端导出Excel表格保存(js-xlsx)】

文前白话

  • 通过使用 SheetJS 库可以通过点击按钮,实现页面数据以 excel 、CSV 等文件形式导出到本地。
  • 官方网址: https://sheetjs.com/.

在这里插入图片描述

引入库文件

  • 不同的使用场景有不同的方式:
  • 在浏览器中,只需添加一个script标签:

<script lang="javascript" src="dist/xlsx.full.min.js"></script>

  • 所需的文件:xlsx.full.min.js 或者 xlsx.min.js 可以在 github 官网文件仓库中的 dist 目录下。两个使用哪一个都可以。链接为:

  • 链接: https://github.com/SheetJS/sheetjs/tree/master/dist.

  • 引入页面位置放在要执行页面js的前面。

在这里插入图片描述
在这里插入图片描述

导出表格步骤

  • 在点击按钮的函数下面添加导出步骤:(在对应的js文件中添加)

$('#button-content .title').on('click', function() {
  const btnDesc = $(this).find('span').html()
  if (btnDesc === '查询') {
    console.log('查询');
    getTableData({
      startTime: startTime,
      endTime: endTime
    })
    return
  }
  if (btnDesc.indexOf('导出报表') !== -1) {

  //使用 sheetjs 导出表格
  // 1、创建一个工作簿 workbook 
  console.log(XLSX);
  const wb = XLSX.utils.book_new()
  //  2、创建工作表 worksheet
  const ws = XLSX.utils.json_to_sheet([
      {id:1,name:"张三",age:20},
      {id:2,name:"李四",age:21},
      {id:3,name:"王五",age:20},
      {id:4,name:"麻子",age:20},
      {id:5,name:"狗蛋",age:20},
      {id:6,name:"七熊",age:20}
  ])
  // 3、把工作表放到工作簿中 
  XLSX.utils.book_append_sheet(wb,ws, 'sheet')
  // 4、生成数据保存
  XLSX.writeFile(wb,"测试表格.xls",{ 
      bookType: 'xls'
  })
    // alert(btnDesc) 
    return
  }
})

  • 注意:

  • 若出现导出文件后,打开 Excel 表格时候,出现 : “导出文件格式和扩展名不匹配”, 表格无法打开。尝试以下:

  • 1、注意保存文件格式 xlsx / xls

  • 2、注意方法前的 XLSX 的 大小写

  • 3、检查引入文件xlsx.full.min.js的版本

  • 在导出自己的数据时候,可以将后端的依照数据格式数据取出,放到 【 {id:1,name:“张三”,age:20},】 相对应得位置即可。

  • 示例:


var queryDataResult = null  // 定义存储查询表格数据变量

// 局部代码
console.log(res);

    var result = JSON.parse(res)

    console.log(result);
    if (result.code === 200) {
      const data = result.data
      queryDataResult = result.data   // 引出搜索的表格数据
      renderTable(data)
    }
  }, 500)


//局部代码


// 顶部搜索栏按钮事件
$('#button-content .title').on('click', function() {
  const btnDesc = $(this).find('span').html()
  if (btnDesc === '查询') {
    console.log('查询');
    getTableData({
      startTime: startTime,
      endTime: endTime
    })
    return
  }
  if (btnDesc.indexOf('导出报表') !== -1) { 
    if (!queryDataResult || !queryDataResult.length) { // 判断数据是否为空
      return
    }
    console.log(queryDataResult)
    var  date55555 = queryDataResult

  console.log(XLSX);
  const wb = XLSX.utils.book_new()
  const ws = XLSX.utils.json_to_sheet(date55555)
  XLSX.utils.book_append_sheet(wb,ws, 'sheet')
  XLSX.writeFile(wb,"导出表格.xls",{
      bookType: 'xls'
  })

效果

在这里插入图片描述在这里插入图片描述

RE:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值