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

下面是“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日

相关文章

  • 各种页面定时跳转(倒计时跳转)代码总结

    “各种页面定时跳转(倒计时跳转)代码总结”是一个非常常见的前端需求,现在我来为大家介绍如何实现这个功能。 前置知识 在学习页面定时跳转之前,需要先了解一些前置知识: HTML 与 CSS的编写与使用; JS的基础语法和基本操作; 对定时器的理解以及使用方法。 分别实现普通定时跳转和倒计时跳转 实现普通定时跳转 普通定时跳转也就是固定时间内跳转,可以通过以下代…

    JavaScript 2023年6月11日
    00
  • cookie的secure属性详解

    Cookie的secure属性详解 什么是Cookie? Cookie是一种由Web服务器存储在Web浏览器上的小文本文件。当Web浏览器向同一服务器发出请求时,会将Cookie发送回服务器。在服务器处理请求时,Cookie提供了一种追踪用户的机制,以便在多个页面或跨站点之间保持状态信息。因此,Cookie是Web应用程序的重要组成部分。 Cookie的Se…

    JavaScript 2023年6月11日
    00
  • 简略的前端架构心得&&基于editor为例子的编码小技巧

    简略的前端架构心得 1. 架构思路 前端架构要着眼于以下几点: 模块化:将复杂的代码分解为互相独立的模块,方便维护和重构。 可维护性:让代码易读易懂,易于维护和修复。 可扩展性:为未来新增功能或需求留出空间。 代码复用:将重复代码,如工具函数,封装为公共模块,提高代码复用率并降低出错率。 2. 前端架构实践 2.1 React 架构 React 是一种基于组…

    JavaScript 2023年5月19日
    00
  • JQuery 获取json数据$.getJSON方法的实例代码

    获取JSON数据是Web开发中常见的操作之一,JQuery库提供了方便的$.getJSON方法来获取JSON数据。下面将为您介绍如何使用$.getJSON方法来获取JSON数据。 引入JQuery库 在使用$.getJSON方法之前,需要先将JQuery库引入到你的HTML文档中。可以通过使用CDN或下载JQuery库本地引入。 <!– 使用CDN引…

    JavaScript 2023年5月27日
    00
  • [翻译] JW Media Player 中文文档第4/4页

    首先需要说明的是,JW Media Player 是一款广泛使用的媒体播放器。其官方文档提供了详细的中文翻译,这里以第4/4页为例,为大家讲解如何将其翻译出来。 以下是完整的翻译攻略: 1. 下载原始文档 首先需要从官网上下载原始的英文文档,网址为:https://developer.jwplayer.com/jw-player/docs/developer…

    JavaScript 2023年6月11日
    00
  • js获取系统的根路径实现介绍

    要获取系统的根路径,我们可以使用JavaScript中的location对象。location对象提供了一些属性可以获取当前网页的地址信息。 获取系统根路径的方法 我们可以使用location对象中的host+pathname属性来获取系统的根路径。host属性可以获取域名和端口号,pathname属性可以获取当前路径。 代码示例: var rootPath…

    JavaScript 2023年6月11日
    00
  • JavaScript实现的字符串replaceAll函数代码分享

    下面我将详细讲解“JavaScript实现的字符串replaceAll函数代码分享”的完整攻略,包含以下内容: 什么是replaceAll函数? 如何使用正则表达式进行字符串替换? replaceAll函数的实现方法 示例说明 什么是replaceAll函数 replaceAll函数是JavaScript字符串的一个方法,用于将字符串中的所有匹配项替换成指定…

    JavaScript 2023年5月28日
    00
  • 防止文件缓存的js代码

    在网站开发中,我们很有可能会更新或者修改一些静态资源文件,比如javascript文件、CSS文件、图片等等,如果浏览器对这些文件进行了缓存,就会导致用户在访问网站时看到的是旧版本的文件,从而影响用户体验。为了解决这个问题,我们需要在网站中加入一些防止文件缓存的javascript代码。下面就是一些防止文件缓存的js代码示例及解释。 1. 在文件的URL后面…

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