vue3导出excel表格(包括导出图片)

一、只导出数据(不包括图片)

安装依赖:npm install xlsx --save

import * as XLSX from "xlsx";
<div
    class="add_inner"
    @click="onBatchExport"
    style="background-color: #67c23a"
       >
     <p>导出</p>
</div>

我这里直接使用接口了

const tableData = ref([]); //用来存放导出的数据
const onBatchExport = () => {
  axios({
    url: "/pcapi/Redeem/index", // url
    params: {},
  })
    .then(function (res) {
      console.log(res.data.data); // 成功回调
      tableData.value = res.data.data;    //将获取到的数据赋给声明的数组
      const data = XLSX.utils.json_to_sheet(tableData.value); //此处tableData.value为表格的数据
      const dc = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(dc, data, "test-data"); //test-data为自定义的sheet表名
      XLSX.writeFile(dc, "test.xlsx"); //test.xlsx为自定义的文件名
    })
    .catch(function (err) {
      console.log(err); // 失败回调
    });
};

 可直接导出,导出结果:

第二种:可以导出图片.

下载依赖:  

npm install js-table2excel

引入路径:

import table2excel from 'js-table2excel'
// 导出
const onBatchExport = () => {//导出按钮
  console.log(123);
  console.log(page_data.value);
  const column = [
    //数据表单
    {
      title: "ID", //表头名称title
      key: "id", //数据
      type: "text", //类型
    },
    {
      title: "景区ID",
      key: "scienceid",
      type: "text",
    },
    {
      title: "景区名称",
      key: "sciencename",
      type: "text",
    },
    {
      title: "二维码",
      key: "code",
      type: "image",
      width: 80,
      height: 80,
    },
    {
      title: "创建时间",
      key: "time",
      type: "text",
      width: 130,
      height: 80,
    },
    {
      title: "二维码状态",
      key: "fon",
      type: "text",
    },
  ];

  let tableDatas = JSON.parse(JSON.stringify(list_data.value)); //将数据转化为字符串(list_data数据是接口数据,把名称换成自己的数据即可)
  let datas = tableDatas;
  table2excel(column, datas, "数据"); //表单数据名称
};
</script>
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 中,你可以使用一些库来导出 Excel 表格,例如 `xlsx` 或 `exceljs`。下面是使用 `xlsx` 库的示例代码: 1. 首先,安装 `xlsx` 库: ```bash npm install xlsx ``` 2. 在你的 Vue 3 项目中,创建一个导出 Excel 表格的方法: ```vue <template> <div> <button @click="exportExcel">导出Excel</button> </div> </template> <script> import XLSX from 'xlsx'; export default { methods: { exportExcel() { // 创建一个Workbook对象 const workbook = XLSX.utils.book_new(); // 创建一个Worksheet对象 const worksheet = XLSX.utils.json_to_sheet([ { Name: 'John', Age: 25, City: 'New York' }, { Name: 'Mike', Age: 30, City: 'Paris' }, { Name: 'Sarah', Age: 28, City: 'London' } ]); // 将Worksheet添加到Workbook中 XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); // 将Workbook对象转换为二进制数据流 const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); // 创建Blob对象 const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); // 创建下载链接并点击下载 const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'my_excel_file.xlsx'; a.click(); // 释放URL对象 window.URL.revokeObjectURL(url); } } }; </script> ``` 在这个示例代码中,我们使用 `xlsx` 库来创建一个 Excel 文件,并将数据写入到文件中。然后,我们将生成的 Excel 文件通过 Blob 对象创建下载链接,并模拟点击下载链接进行下载。 你可以将这段代码放入你的 Vue 3 组件中,并在需要导出 Excel 表格的地方调用 `exportExcel` 方法。 希望对你有所帮助!如果有任何问题,请随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值