轻松搞定 excel 的 导入 和 导出

简介: 轻松搞定 excel 的 导入 和 导出

1. 前言

  1. 最近vue 操作excel 导入导出面试的时候有些公司问到了
  2. 在这里回忆以及更新下自己的知识库
  3. 之前开发做的客服系统的时候 那些坐席相关的各种报表
  4. 比如呼损表,呼叫表坐席表等用到了不少的excel的导入 导出有些还是批量导出,这个到时候大数据在但是写吧

2.  准备工作

  1. 项目使用vue3+ elementPlus
  2. 处理excel操作的常用库,xlsxexceljs
    帮助我们读取 Excel 文件的内容,并将其转换为可用的数据格式
  3. 想起了 python里面处理 excel的库 pandas 谁用谁知道
    不过 python里面简单的excel操作使用xlsx 也足够了

3. excel 导入功能

1.安装依赖

npm install xlsx  # 或者 npm install exceljs

2.vue组件实例代码

<template>
  <el-upload
    action=""
    :before-upload="handleFileUpload"
  >
    <el-button>点击上传</el-button>
  </el-upload>
</template>
<script>
import { ref } from 'vue';
import { read, utils } from 'xlsx';  // 或者 import ExcelJS from 'exceljs';
export default {
  setup() {
    const handleFileUpload = (file) => {
      const reader = new FileReader();
      reader.onload = (e) => {
        const data = new Uint8Array(e.target.result);
        const workbook = read(data, { type: 'array' });  // 或者 const workbook = new ExcelJS.Workbook();
        const worksheet = workbook.Sheets[workbook.SheetNames[0]];
        const jsonData = utils.sheet_to_json(worksheet, { header: 1 });
        console.log(jsonData);  // 在控制台中打印解析后的数据
        // 在这里可以根据需要进一步处理数据,例如将数据存储到 Vuex 中或发送到后端
        // 清空上传组件的文件列表
        file.value = null;
      };
      reader.readAsArrayBuffer(file.raw);
      return false;  // 阻止上传组件的默认行为
    };
    return {
      handleFileUpload,
    };
  },
};
</script>
  1. 使用 xlsx 库读取 Excel 文件的内容并将其解析为 JSON 格式
  2. 然后通过 console.log 打印出来。
  3. 可以根据需要对数据进行进一步处理,比如需要哪些字段。
  4. 这只是上传之前的准备工作

4. 结合服务端处理

  1. Element Plus 提供了el-upload组件,
    可以与后端接口进行交互,实现文件的上传和处理
  2. 配置el-upload的属性和事件来实现 Excel导入功能

<template>
  <el-upload
    action="/upload"  <!-- 根据你的后端接口进行配置 -->
    :on-success="handleUploadSuccess"
  >
    <el-button>点击上传</el-button>
  </el-upload>
</template>
<script>
export default {
  methods: {
    handleUploadSuccess(response) {
      // 在这里可以根据后端返回的数据进行处理
      console.log(response);
    },
  },
};
</script>
  1. 通过配置 action属性指定后端的接口地址
  2. 然后通过 on-success事件处理上传成功后的响应。
  3. 根据后端返回的数据进行进一步处理

5. excel 导出

  1. 组件实例代码

<template>
  <div>
    <el-button @click="exportToExcel">导出Excel</el-button>
  </div>
</template>
<script>
import { ref } from 'vue';
import { write, utils } from 'xlsx';  // 或者 import ExcelJS from 'exceljs';
export default {
  setup() {
    const exportToExcel = () => {
      const data = [
        ['姓名', '年龄', '性别'],
        ['John', 28, '男'],
        ['Jane', 32, '女'],
        ['Bob', 45, '男']
      ];
      const worksheet = utils.aoa_to_sheet(data);
      const workbook = utils.book_new();
      utils.book_append_sheet(workbook, worksheet, 'Sheet1');
      // 生成二进制流
      const excelBuffer = 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.download = 'data.xlsx';
      link.click();
      // 释放资源
      URL.revokeObjectURL(url);
    };
    return {
      exportToExcel,
    };
  },
};
</script>

1.用 xlsx 库将数据转换为Excel文件,

  1. 然后通过创建下载链接实现文件的导出。
  2. 你可以根据需要修改数据部分,使用不同的方法将数据转换为 Excel 格式,
    例如 utils.aoa_to_sheet 将二维数组转换为工作表。
  3. 然后使用 write 方法将工作表写入工作簿,最后创建下载链接并点击下载
  • 导出也可以服务端来实现,就相当于典型的下载操作

6.





7.





8.





9.





10.





参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
目录
打赏
0
0
0
0
3
分享
相关文章
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
113 8
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
75 0
|
4月前
|
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
58 1
记录一次NPOI库导出Excel遇到的小问题解决方案
【11月更文挑战第16天】本文记录了使用 NPOI 库导出 Excel 过程中遇到的三个主要问题及其解决方案:单元格数据格式错误、日期格式不正确以及合并单元格边框缺失。通过自定义单元格样式、设置数据格式和手动添加边框,有效解决了这些问题,提升了导出文件的质量和用户体验。
363 3
|
4月前
|
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
224 4
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
250 6
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等