Vue导入导出Excel详细解析

一、Excel文件的格式

1、Excel文件格式描述:Excel是微软公司开发的一种电子表格软件,主要用于数据处理、数据统计及财务管理等方面。Excel文件的格式为.xlsx或者.xls格式,其中.xlsx格式属于OpenXML文件格式,基于XML格式存储数据。

2、与Vue结合方案:Vue可以通过导入、导出Excel文件实现数据的批量处理。通过使用Excel文件,我们可以方便地对数据进行调整、编辑,然后再将其导入到Vue中进行数据的操作。

二、导出Excel

1、如何导出?

//导出表格
export function exportExcel() {
  // 创建一个Workbook
  let workbook = XLSX.utils.book_new();
  // 定义表格标题
  let sheetHeader = ["姓名", "年龄", "性别"];
  // 定义表格数据
  let sheetData = [["张三", "18", "男"], ["李四", "20", "女"], ["王五", "22", "男"]];
  // 创建一个Sheet
  let sheet = XLSX.utils.aoa_to_sheet([sheetHeader].concat(sheetData));
  // 将sheet添加到workbook中
  XLSX.utils.book_append_sheet(workbook, sheet, "Sheet1");
  // 导出Excel文件
  let excelFile = XLSX.write(workbook, {type: 'binary'});
  let fileName = "table.xlsx";
  saveAs(new Blob([choseArrExcelFile], { type: "application/octet-stream" }), fileName);
}

2、核心API解析:

XLSX是一个开源的JS-XLSX库,可读取、解析、写入Excel文件。其主要包含以下函数:

  • utils.book_new():创建一个Workbook对象
  • utils.aoa_to_sheet():将二维数组转换成sheet对象
  • utils.book_append_sheet(workbook,sheet,name):将sheet添加到workbook中,name表示sheet名称
  • XLSX.write():将Workbook对象转换成二进制文件

三、导入Excel

1、如何导入?

//导入文件变化
fileChange(event) {
  let file = event.target.files[0];
  let reader = new FileReader();
  reader.onload = function (e) {
    const data = new Uint8Array(e.target.result);
    const workbook = XLSX.read(data, { type: "array" });
    const sheets = workbook.Sheets[workbook.SheetNames[0]];
    const table = XLSX.utils.sheet_to_json(sheets);
    console.log(table);
  };
  reader.readAsArrayBuffer(file);
}

2、核心API解析:

从Excel文件中读取数据,我们首先需要使用FileReader对象读取文件,并把读取到的二进制数据传给XLSX对象的read()方法。read()方法解析二进制数据,并返回一个Workbook对象,Workbook对象包含多个sheet,我们只在这里读取第一个sheet(sheets[0]),并将其转换为JSON格式的数据,最终输出到控制台中。

  • new FileReader():创建一个FileReader对象
  • reader.onload():对文件进行读取,读取完成后调用回调函数
  • new Uint8Array(buffer):使用buffer作为参数创建一个新的无符号整数数组
  • XLSX.read():将二进制数据解析为workbook对象
  • XLSX.utils.sheet_to_json():将sheet对象转换为JSON格式的数据

四、Vue.js结合实现导入、导出Excel

1、完整代码示例:

//头部

import * as XLSX from 'xlsx';
export default {
//导出表格
exportExcel() {
// 创建一个Workbook
let workbook = XLSX.utils.book_new();
// 定义表格标题
let sheetHeader = ["姓名", "年龄", "性别"];
// 定义表格数据
let sheetData = [["张三", "18", "男"], ["李四", "20", "女"], ["王五", "22", "男"]];
// 创建一个Sheet
let sheet = XLSX.utils.aoa_to_sheet([sheetHeader].concat(sheetData));
// 将sheet添加到workbook中
XLSX.utils.book_append_sheet(workbook, sheet, "Sheet1");
// 导出Excel文件
let excelFile = XLSX.write(workbook, {type: 'binary'});
let fileName = "table.xlsx";
saveAs(new Blob([choseArrExcelFile], { type: "application/octet-stream" }), fileName);
},
//导入文件变化
fileChange(event) {
let file = event.target.files[0];
let reader = new FileReader();
reader.onload = function (e) {
const data = new Uint8Array(e.target.result);
const workbook = XLSX.read(data, { type: "array" });
const sheets = workbook.Sheets[workbook.SheetNames[0]];
const table = XLSX.utils.sheet_to_json(sheets);
console.log(table);
};
reader.readAsArrayBuffer(file);
},
}

//导入导出示例代码

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/243920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-12 12:59
下一篇 2024-12-12 12:59

相关推荐

  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • Vue TS工程结构用法介绍

    在本篇文章中,我们将从多个方面对Vue TS工程结构进行详细的阐述,涵盖文件结构、路由配置、组件间通讯、状态管理等内容,并给出对应的代码示例。 一、文件结构 一个好的文件结构可以极…

    编程 2025-04-29
  • 为什么不能用Microsoft Excel进行Python编程?

    Microsoft Excel是一个广泛使用的数据分析工具,但是它不能直接用于Python编程。这是因为Microsoft Excel并不是一个编程工具,它的主要功能是进行数据处理…

    编程 2025-04-29
  • 基尼系数Excel计算模板

    这篇文章将介绍基尼系数Excel计算模板,为大家详细阐述如何使用Excel进行基尼系数的计算。 一、模板下载及导入 首先需要下载基尼系数的Excel计算模板,可以在Excel中通过…

    编程 2025-04-28
  • Vue3的vue-resource使用教程

    本文将从以下几个方面详细阐述Vue3如何使用vue-resource。 一、安装Vue3和vue-resource 在使用vue-resource前,我们需要先安装Vue3和vue…

    编程 2025-04-27
  • ThinkPHP6 + Vue.js: 不使用Fetch的数据请求方法

    本文将介绍如何在ThinkPHP6和Vue.js中进行数据请求,同时避免使用Fetch函数。 一、AJAX:XMLHttpRequest的基础使用 在进行数据请求时,最基础的方式就…

    编程 2025-04-27
  • Vue模拟按键按下

    本文将从以下几个方面对Vue模拟按键按下进行详细阐述: 一、Vue 模拟按键按下的场景 在前端开发中,我们常常需要模拟按键按下的场景,比如在表单中填写内容后,按下“回车键”提交表单…

    编程 2025-04-27
  • 开发前端程序,Vue是否足够?

    Vue是一个轻量级,高效,渐进式的JavaScript框架,用于构建Web界面。开发人员可以使用Vue轻松完成前端编程,开发响应式应用程序。然而,当涉及到需要更大的生态系统,或利用…

    编程 2025-04-27
  • 使用ReoGrid操作Excel的WPf应用

    本文将详细阐述如何使用ReoGrid来操作Excel,重点介绍在WPF应用程序中使用ReoGrid的方法及注意点。 一、ReoGrid简介 ReoGrid是一个基于.NET的开源组…

    编程 2025-04-27
  • 如何在Vue中点击清除SetInterval

    在Vue中点击清除SetInterval是常见的需求之一。本文将介绍如何在Vue中进行这个操作。 一、使用setInterval和clearInterval 在Vue中,使用set…

    编程 2025-04-27

发表回复

登录后才能评论