xlsx.js 的使用:导出 csv 文件

656 阅读1分钟

前言:关于csv文件

CSV文件是一种纯文本文件,它以逗号分隔不同的字段,并以换行符分隔不同的记录。

CSV文件通常用于电子表格数据库软件,可以用来存储和传输数据,例如在网页爬虫、数据分析和统计中广泛应用。

需求:将数据对象导出为.csv格式的文件。

  1. 首先,安装xlsx插件
npm install xlsx
  1. 在文件中引入
import XLSX from 'xlsx'; // xlsx^0.13.5
// 注意,xlsx^0.18.5 用下面的方式引入
// 暂未找到从哪个版本开始这个变化,若无版本要求,直接用最新版xlsx包即可
import * as XLSX from 'xlsx/xlsx.mjs'


  1. 创建导出方法
exportCsv(data, fileName = 'example.csv') {
    // 创建工作簿
    const workbook = XLSX.utils.book_new();

    // 创建工作表
    const worksheet = XLSX.utils.json_to_sheet(data);

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

    // 保存为CSV文件
    XLSX.writeFile(workbook, `${fileName}.csv`);
}
  1. 使用导出方法
// data 通常可请求后端接口获得
const data = [
    {'编号': '001', '时间': '2023-09-13 12:11:11'},
    {'编号': '002', '时间': '2023-09-14'},
];

//导出文件名称
const fileName = '示例文件';

//调用导出文件方法
exportData(data, fileName);
  1. 运行之后,浏览器将下载 示例文件.csv ,文件内容如下

1694596312661.png

更多

注意,此处表格第一项的时间显示 ##... ,原因是列宽不够,若要将该时间显示全,可在时间之前加 = ,即 '=2023-09-13 12:11:11' ,可勉强解决该问题,效果如下

1694596459882.png

你可以在 xlsx - npm (npmjs.com) 找到更多用法