vue3 下载xlsx 模版

安装

npm install xlsx --save

使用

<script setup lang="ts">

import * as XLSX from 'xlsx'

// 定义一个方法
const PrintXlsx = () => {
  const data = [
    [
      '栏目一',
      '栏目二',
      '栏目三',
      '栏目四',
      '栏目五',
    ]
  ]
  
  // 创建工作簿
  const workbook = XLSX.utils.book_new()
  const worksheet = XLSX.utils.aoa_to_sheet(data)
  XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1')
  // 将工作簿转换为二进制流
  const excelBuffer = XLSX.write(workbook, { type: 'array', bookType: 'xlsx' })
  // 创建 Blob 对象
  const blob = new Blob([excelBuffer], {
    type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  })
  // 创建下载链接并触发下载
  const url = URL.createObjectURL(blob)
  const link = document.createElement('a')
  link.href = url
  link.setAttribute('download', '这个一个模版.xlsx')
  document.body.appendChild(link)
  link.click()
  document.body.removeChild(link)
}

</script>


<template>

 <el-button @click="PrintXlsx()">下载模版</el-button>

</template>



下载有数据的xlsx文件

<script setup lang="ts">

import * as XLSX from 'xlsx'

// 定义一个方法
const downloadData = () => {
// 这里数据必须是二维数组 [[],[],[]]
  const data = [
    ['内容0-1','内容0-2'],
    ['内容1-1','内容1-2'],
    ['内容2-1','内容2-2'],
    ['内容3-1','内容3-2'],
    ['内容4-1','内容4-2'],
  ];
  const wb = XLSX.utils.book_new();
  const ws = XLSX.utils.aoa_to_sheet(data);
  // s 表示要合并的单元格范围的左上角单元格,r 表示该单元格的行号,c 表示该单元格的列号,行列号从 0 开始计数。所以 { r: 0, c: 0 } 表示第 1 行第 1 列的单元格,即 A1 单元格。
  // // e 表示要合并的单元格范围的右下角单元格,其含义与 s 相同。所以 { r: 0, c: 1 } 表示第 1 行第 2 列的单元格,即 B1 单元格。
  // // 因此,{ s: { r: 0, c: 0 }, e: { r: 0, c: 1 } } 表示要合并第 1 行第 1 列和第 1 行第 3 列之间的元格。
  // // 注意,合并会以开始位置单元格中的内容为准,所以合并后的单元格中的内容为 A1 单元格中的内容。
  const mergeRow1 = { s: { r: 0, c: 0 }, e: { r: 0, c: 1 } };
  const mergeRow2 = { s: { r: 1, c: 0 }, e: { r: 1, c: 1 } };

  // 将合并单元格的范围添加到工作表对象的 "!merges" 属性中
  ws["!merges"] = [mergeRow1, mergeRow2];

  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");

  XLSX.writeFile(wb, "这是一个文件.xlsx");
};

</script>


<template>

 <el-button @click="downloadData ()">下载模版</el-button>

</template>



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Vue中实现下载xlsx文件,你可以使用xlsx.js这个JavaScript库。下面是一个简单的步骤: 1. 首先,安装xlsx.js库。在终端中运行以下命令: ``` npm install xlsx ``` 2. 在需要使用下载功能的组件中,引入xlsx.js: ```js import XLSX from 'xlsx'; ``` 3. 创建一个下载xlsx的方法,你可以在点击按钮或其他事件触发时调用该方法: ```js export default { methods: { downloadXLSX() { // 创建一个工作簿对象 const workbook = XLSX.utils.book_new(); // 创建一个工作表对象 const worksheet = XLSX.utils.json_to_sheet([ { Name: "John Doe", Age: 30 }, { Name: "Jane Smith", Age: 25 }, { Name: "Bob Johnson", Age: 35 } ]); // 将工作表添加到工作簿中 XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1"); // 将工作簿转换为二进制数据流 const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); // 创建Blob对象 const blob = new Blob([wbout], { type: 'application/octet-stream' }); // 创建下载链接 const url = URL.createObjectURL(blob); // 创建一个隐藏的a标签 const link = document.createElement('a'); link.href = url; link.download = 'data.xlsx'; // 模拟点击下载链接 link.click(); // 释放资源 URL.revokeObjectURL(url); } } } ``` 4. 在模板中添加一个按钮,并调用下载方法: ```html <template> <div> <button @click="downloadXLSX">下载XLSX</button> </div> </template> ``` 当你点击这个按钮时,将会触发下载xlsx文件的过程。你可以根据自己的需求修改工作表的数据和文件名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值