首页 > 其他分享 >Vue 3 来读取和创建 Excel 文件

Vue 3 来读取和创建 Excel 文件

时间:2024-09-20 18:19:32浏览次数:14  
标签:xlsx Vue const 读取 XLSX utils Excel workbook

在前端处理 Excel 文件(读取和创建)通常借助于一些第三方库,如 xlsx。以下是如何使用 xlsx 库在前端从 Excel 文件中读取数据以及创建并写入数据的详细步骤。

1.安装 xlsx 库并导入

npm install xlsx
import * as XLSX from 'xlsx';

2.创建并下载 Excel 文件

直接上代码
<button @click="createExcelFile">Download Excel</button> 

const createExcelFile = () => {
      // 创建一个新的工作簿
      const workbook = XLSX.utils.book_new();

      // 创建一些数据
      const data = [
        ['Name', 'Age', 'City'],
        ['John Doe', 29, 'New York'],
        ['Jane Smith', 34, 'San Francisco'],
        ['Sam Johnson', 23, 'Los Angeles']
      ];

      // 将数据转换为工作表
      const worksheet = XLSX.utils.aoa_to_sheet(data);

      // 将工作表添加到工作簿
      XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

      // 生成 Excel 文件并触发下载
      const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });

      // 创建一个 Blob 对象
      const blob = new Blob([wbout], { type: 'application/octet-stream' });

      // 创建一个链接并触发下载
      const url = URL.createObjectURL(blob);
      const a = document.createElement('a');
      a.href = url;
      a.download = 'example.xlsx';
      document.body.appendChild(a);
      a.click();
      document.body.removeChild(a);
    };

3.读取文件

   const handleFile = (event) => {
      const file = event.target.files[0];
      const reader = new FileReader();

      reader.onload = (e) => {
        const data = new Uint8Array(e.target.result);
        const workbook = XLSX.read(data, { type: 'array' });

        // 假设我们读取第一个工作表
        const sheetName = workbook.SheetNames[0];
        const worksheet = workbook.Sheets[sheetName];

        // 将工作表内容转换为 JSON 格式
        jsonData.value = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
      };

      reader.readAsArrayBuffer(file);
    };

总结

  1. 读取 Excel 文件

    • 使用 FileReader 读取文件内容。
    • 使用 XLSX.read 解析文件内容。
    • 将解析后的数据转换为 JSON 格式并显示。
  2. 创建并下载 Excel 文件

    • 使用 XLSX.utils.book_new 创建一个新的工作簿。
    • 使用 XLSX.utils.aoa_to_sheet 将数据转换为工作表。
    • 使用 XLSX.utils.book_append_sheet 将工作表添加到工作簿。
    • 使用 XLSX.write 生成 Excel 文件。
    • 使用 Blob 和 URL.createObjectURL 生成下载链接并触发下载。

 

标签:xlsx,Vue,const,读取,XLSX,utils,Excel,workbook
From: https://blog.csdn.net/weixin_61186987/article/details/142391304

相关文章

  • Excel--DATEDIF函数的用法及参数含义
    DATEDIF函数的用法为:DATEDIF(start_date,end_date,unit),start_date表示的是起始时间,end_date表示的是结束时间。unit表示的是返回的时间代码,是天、月、年等。如下:Datedif函数的参数含义unit参数返回值的意义"y"两个时间段之间的整年数"m"两个时间段之间的整月数"d"两个时......
  • vue2实现监听usb接口的扫码器,获取扫码数据。
    原理扫码枪本质就是一个快速输入+回车(注意:扫码输入法要设置英文,不然会乱码)全局安装importscannerfrom'./install';Vue.use(scanner);使用exportdefault{data(){return{items:[],//扫码结果isStart:false//是否开启扫码}......
  • 2024-09-20 如何去除vue前端框架upload组件中的缓存 ==》v-if+setTimeout
    在很多前端框架中的upload组件,比如arco-design的a-upload组件,在遍历渲染过程中会发现上传完成后,切换到另一个a-upload组件,它的图片会显示上一个a-upload组件的缓存 正常上传,然后点击红色,红色对应的图片应该被清空,实际上却并没有,如下解决方案:给a-upload组件加一个条件判断v-if......
  • vue解决history路由模式刷新重定向问题(apache服务器)
    问题:vue文件打包后部署到apache服务器下,vue在history路由模式时,访问www.xx.com/about路径时刷新会导致notfount页面,这是因为www.xx.com/about目录不存在于服务器。解决:apche服务器重写路由到www.xx.com/下。然后刷新可正常访问到about页面apache开启路由重写1、配置文件......
  • 基于Python+Vue开发的鲜牛奶订购管理系统
    项目简介该项目是基于Python+Vue开发的鲜牛奶订购管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的牛奶订购管理系统项目,大学生可以在实践中学习和提升自己......
  • 基于Python+Vue开发的反诈视频宣传管理系统
    项目简介该项目是基于Python+Vue开发的反诈视频宣传管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的反诈宣传管理系统项目,大学生可以在实践中学习和提升自......
  • 基于Python+Vue开发的美容预约管理系统
    项目简介该项目是基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自......
  • 基于Python+Vue开发的新闻管理系统
    项目简介该项目是基于Python+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的新闻管理系统项目,大学生可以在实践中学习和提升自己的能力,为以......
  • 基于Python+Vue开发的摄影网上预约管理系统
    项目简介该项目是基于Python+Vue开发的摄影网上预约管理系统(前后端分离),影楼婚纱摄影,这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的在线摄影预约管理系统项目,大学生可以在实......
  • 基于Python+Vue开发的民宿客房预订管理系统
    项目简介该项目是基于Python+Vue开发的民宿客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的民宿客房预订管理系统项目,大学生可以在实践中学习和提......