js导出excel文件的简洁方法(推荐)

yizhihongxing

下面是“js导出excel文件的简洁方法(推荐)”的完整攻略。

1. 前置知识

要实现js导出excel文件,需要了解以下知识:

  • Blob对象:Blob 对象表示一个不可变、原始数据的类文件对象。Blob 表示的不一定是JavaScript原生格式的数据。文件类型的二进制数据也可以从一个 Blob 中读取。
  • URL.createObjectURL():该方法创建一个 DOMString,其中包含一个表示参数中给出对象的URL。
  • js-xlsx库:一个 JavaScript 实现的电子表格文件读写工具,支持 xlsx、csv 等格式。

2. 实现方式

以下是实现js导出excel文件的简洁方法:

1. 引入 js-xlsx 库

首先,在页面中引入 js-xlsx 库。

<script src="https://cdn.bootcdn.net/ajax/libs/xlsx/0.16.9/xlsx.full.min.js"></script>

2. 编写导出函数

然后,编写导出函数 exportExcel

function exportExcel(headers, data, fileName = "export.xlsx", sheetName = "Sheet1") {
  const worksheet = XLSX.utils.json_to_sheet(data); // 将数据转化为 worksheet
  const workbook = {
    Sheets: { [sheetName]: worksheet }, // 添加 worksheet 到 workbook
    SheetNames: [sheetName], // 设置 workbook 的 sheetNames
  };
  const excelBuffer = XLSX.write(workbook, { bookType: "xlsx", type: "array" }); // 生成 excel 导出内容
  const blob = new Blob([excelBuffer], { type: "application/octet-stream" }); // 转换 excel 导出内容为 Blob
  const href = URL.createObjectURL(blob); // 创建下载链接
  const link = document.createElement("a"); // 创建 a 标签
  link.href = href;
  link.download = fileName; // 下载文件名
  document.body.appendChild(link); // 将 a 标签插入到body
  link.click(); // 模拟点击下载链接
  document.body.removeChild(link); // 下载完成后移除 a 标签
}

函数的参数说明:

  • headers:导出的表格的表头,可以是一个数组或一个对象。
  • data:导出的表格的数据,可以是一个数组或一个对象。
  • fileName:导出的表格的文件名,默认为 "export.xlsx"。
  • sheetName:导出的表格的 sheet 名称,默认为 "Sheet1"。

3. 调用导出函数

最后,在需要导出表格的地方调用 exportExcel 函数。

const headers = ["姓名", "年龄", "性别"];
const data = [
  { 姓名: "张三", 年龄: 18, 性别: "男" },
  { 姓名: "李四", 年龄: 20, 性别: "男" },
  { 姓名: "小红", 年龄: 16, 性别: "女" },
];

exportExcel(headers, data, "员工信息.xlsx");

以上代码在页面中生成一个下载链接,点击链接即可导出一个名为“员工信息.xlsx”的 excel 文件,文件格式为 xlsx。

3. 示例说明

示例一

如果要导出的表格数据为以下数据:

const headers = ["编号", "水果名称", "单价"];
const data = [
  { 编号: 1, 水果名称: "苹果", 单价: 6.5 },
  { 编号: 2, 水果名称: "香蕉", 单价: 2.5 },
  { 编号: 3, 水果名称: "葡萄", 单价: 9.8 },
  { 编号: 4, 水果名称: "橙子", 单价: 4.2 },
  { 编号: 5, 水果名称: "草莓", 单价: 15.6 },
];

exportExcel(headers, data, "水果价格.xlsx");

生成的 excel 文件中的内容为:

编号 水果名称 单价
1 苹果 6.5
2 香蕉 2.5
3 葡萄 9.8
4 橙子 4.2
5 草莓 15.6

示例二

如果要导出的表格数据为以下数据:

const headers = { a: "编号", b: "水果名称", c: "单价" };
const data = [
  { a: 1, b: "苹果", c: 6.5 },
  { a: 2, b: "香蕉", c: 2.5 },
  { a: 3, b: "葡萄", c: 9.8 },
  { a: 4, b: "橙子", c: 4.2 },
  { a: 5, b: "草莓", c: 15.6 },
];

exportExcel(headers, data, "水果价格.xlsx");

生成的 excel 文件中的内容与示例一相同。

4. 总结

以上就是实现js导出excel文件的简洁方法(推荐)的完整攻略。通过使用 js-xlsx 库,我们可以快速方便地实现 js 导出 excel 文件的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js导出excel文件的简洁方法(推荐) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JS判断浏览器是否安装flash插件的简单方法

    当浏览器没有安装Flash插件时,通常会导致Flash资源无法加载,从而影响页面的使用。因此,在开发网站时,我们需要判断用户所使用的浏览器是否安装了Flash插件。 下面是JS判断浏览器是否安装Flash插件的简单方法,包括两条示例说明。 1. navigator.plugins 通过 navigator.plugins 可以获取浏览器安装的插件,其中Fla…

    JavaScript 2023年6月11日
    00
  • 浅谈JavaScript作用域和闭包

    浅谈JavaScript作用域和闭包 什么是JavaScript作用域? 在 JavaScript 中,每个变量、函数都有访问的范围,这就是作用域。JavaScript 中的作用域可以是全局作用域和局部作用域。 全局作用域 全局作用域可以定义在 JavaScript 代码的最外层范围内,即最顶层作用域。在全局作用域内定义的变量和函数可以在代码的任何地方访问。…

    JavaScript 2023年6月10日
    00
  • jQuery EasyUI提交表单验证

    jQuery EasyUI 是一款非常流行的 jQuery 插件集合,其中包含了许多实用的 UI 组件,方便我们在 Web 开发中使用。其提交表单验证功能也非常实用,在本篇文章中,我们将详细讲解 jQuery EasyUI 提交表单验证的完整攻略,包括如何配置和使用验证器,以及如何处理验证结果。 准备工作 首先,我们需要引入 jQuery EasyUI 插件…

    JavaScript 2023年6月10日
    00
  • JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】

    下面我将详细讲解“JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】”的完整攻略。 准备工作 在使用FileSaver.js之前,我们需要先在HTML页面中导入该插件: <script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSa…

    JavaScript 2023年5月19日
    00
  • JavaScript中获取时间的函数集

    下面是详细讲解 JavaScript 中获取时间的函数集的完整攻略。 一、获取当前时间的函数 JavaScript 中获取当前时间可以使用 Date 类,通过 new Date() 实例化出一个日期对象,再通过该对象的方法获取当前时间。 //获取当前时间 var date = new Date(); console.log(date) // 输出日期 上述代…

    JavaScript 2023年5月27日
    00
  • JS层移支示例代码

    需要讲解JS层移支的示例代码,我们先来明确一下JS层移支(JS舞台)在网页中的作用:为网站添加交互功能。那么JS层移支示例代码的完整攻略就是为网页添加交互功能的过程。 在添加交互功能之前,需要准备一个能够运行JS代码的环境,这个环境在网页中就是浏览器。在浏览器中可以使用console.log()来在控制台输出信息,这对于调试代码非常有帮助。 为了添加交互功能…

    JavaScript 2023年6月10日
    00
  • JavaScript文件的同步和异步加载的实现代码

    那么我们来详细讲解一下JavaScript文件的同步和异步加载的实现代码的攻略。 什么是同步和异步加载 在Web前端开发中,我们一般用JavaScript来实现页面交互和动态效果等,因此需要将JavaScript文件加载到HTML页面上。JavaScript文件的加载可以分为同步和异步两种方式。 同步加载的方式是按照JavaScript文件在HTML页面中的…

    JavaScript 2023年5月27日
    00
  • Vue联动Echarts实现数据大屏展示

    下面是“Vue联动Echarts实现数据大屏展示”的完整攻略。 一、什么是Vue联动Echarts Vue是一款流行的前端框架,Echarts是一款流行的数据可视化库。Vue联动Echarts的实现,就是将Vue与Echarts进行结合,实现数据的动态展示和交互。 二、如何实现Vue联动Echarts 1. 引入Echarts 在项目中引入Echarts库,…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部