vue 将xlsx表格转成json数据

28 篇文章 0 订阅
24 篇文章 1 订阅

一、xlsx文件

 

二、代码实现

HTML:

<van-uploader
  :before-read="beforeUpload"
  :accept="'application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'">
  <van-button icon="plus" type="primary">上传文件</van-button>
</van-uploader>

JS:

beforeUpload(file) {
  if (file.size / 1024 / 1024 > 5) {
    this.$message({
      message: '上传文件大于5M',
      type: 'info'
    })
    return false
  }
  return new Promise((resolve, reject) => {
    let reader = new FileReader()
    reader.onload = r => {
      let data = r.target.result
      let workbook = XLSX.read(data, { type: 'binary' })
      let worksheet = workbook.Sheets[workbook.SheetNames[0]]
      let excelData = XLSX.utils.sheet_to_json(worksheet, {
        header: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
      })
      excelData.shift()
      console.log(excelData)
      resolve()
    }
    reader.readAsBinaryString(file)
  })
}

三、json数据

四、xlsx插件

xlsx插件:https://github.com/SheetJS/sheetjs

要在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导出表格嵌套表格的基本步骤。您可以根据需要修改代码,以适应您的应用程序需求。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天高任鸟飞dyz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值