为何强烈推荐xlsxtable将表格数据转为xlsx?

前有科技后进阶 2024-06-20 07:19:33

大家好,很高兴又见面了,我是"高级前端‬进阶‬",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

什么是 xlsxtable

A small, simple library to create nice .xlsx Excel files from tabular data

xlsxtable 是一个小型、简单的库,用于从表格数据创建漂亮的 .xlsx Excel 文件。

xlsxtable 目前已经支持以下功能:

加粗并(可选)冻结和自动过滤标题根据单元格内容设置列宽将日期和时间转换为原生 Excel 格式(大致:自 1900 年 1 月 0 日以来的浮点天数)适用于任何环境,包括 Node 和浏览器体积压缩后不到 7KB,唯一的运行时依赖项是 littlezipper(由同一作者编写,很小,并且没有自己的运行时依赖项)。

此库支持 Neon SQL 编辑器中的 .xlsx 下载。

如何使用 xlsxtable

下面是在 Node.js 环境中输出一个. xlsx 文件:

import {createXlsx, XlsxTypes as Xl} from 'xlsxtable';import {writeFileSync} from 'fs';const now = new Date();createXlsx({ // 表格数据 headings: ['id', 'name', 'dob', 'wake_up', 'lastUpdated'], types: [Xl.Number, Xl.String, Xl.LocalDate, Xl.LocalTime, Xl.LocalDateTime], data: [ [1, 'Anna', new Date(1979, 0, 1), new Date(0, 0, 0, 7), now], [2, 'Bryn', new Date(1989, 1, 2), new Date(0, 0, 0, 8), now], [3, 'Chip', new Date(1999, 2, 3), new Date(0, 0, 0, 9), now], ], // 可选配置 sheetName: 'Sheet 1', // 显示在底部选项卡上:允许的有限字符范围 freeze: true, // 冻结顶部 / 标题行 autoFilter: true, // 启用标头自动过滤器 wrapText: true, // 换行长文本单元格 // metadata creator: 'Diane', title: 'Blughupsnitch data', description: 'Data about the blughupsnitch', company: 'Dogoodnever Inc.',}) .then(xlsx => writeFileSync('/path/to/my.xlsx', xlsx));

如果要在浏览器中下载 xlsx 文件,可以通过下面方法完成:

const xlsx = await createXlsx(/* ... */);const url = URL.createObjectURL(new Blob([xlsx]));const link = document.createElement('a');link.style.display = 'none';document.body.appendChild(link);link.href = url;link.download = 'my.xlsx';link.click();setTimeout(() => { URL.revokeObjectURL(url); document.body.removeChild(link);}, 0);参考资料

https://github.com/jawj/littlezipper

https://github.com/jawj/xlsxtable#readme

https://www.ablebits.com/office-addins-blog/convert-excel-html/

0 阅读:1

前有科技后进阶

简介:感谢大家的关注