【问题标题】:JS Library to create formatted XLSX spreadsheets用于创建格式化 XLSX 电子表格的 JS 库
【发布时间】:2019-11-20 20:59:01
【问题描述】:

我目前正在使用 https://www.npmjs.com/package/xlsx 在 JS 中创建通用电子表格。这可以很好地生成一个通用电子表格来显示我的数据。不过,我想添加一些功能。

https://imgur.com/a/gJE9mXg 是我想要实现的一个例子。它是使用仅适用于 Java 的 Apache POI 创建的。

我想要在该屏幕截图中的功能是

  1. 添加图片的功能(在左上角显示为徽标)
  2. 能够更改字体颜色(如中间的标题所示)
  3. 能够居中对齐文本(如在中心看到的字幕)
  4. 能够使字段可排序(如每列的箭头按钮所示)

SheetJS 似乎可以通过其高级版本提供其中的一些功能。 https://dzone.com/articles/5-popular-standalone-javascript-spreadhsheet-libra 是我查看的其他库的列表。但是,该列表似乎更像是使用本机 JS 对象模拟电子表格,而不是创建 .xlsx 文件。此外,它们中的大多数都需要付费许可证。

有人有使用免费 JS 解决方案创建我的 4 个需求的经验吗?我正在构建 Meteor JS 顺便说一句。

如果没有,是否还有其他解决方法可以实现此目的? IE。让应用程序只输出一个 .csv,然后创建一个通用的 excel“模板”文件,该文件将使用 csv 进行所有格式化?或者,委托其他程序/脚本生成 XLSX 并下载输出文件。

谢谢

【问题讨论】:

    标签: javascript excel meteor xlsx sheetjs


    【解决方案1】:

    exceljs 拥有您想要的所有功能,只是 API 略有不同,并且不像 xlsx 那样受欢迎,这就是为什么它总是在雷达下飞行。

    【讨论】:

    • 昨天刚看到这个。令人惊讶的是,我不得不去第三个谷歌搜索页面才能找到这个。不知道为什么,因为它的文档似乎包含了付费图书馆所做的一切。如果你以前用过这个,只是一个简单的问题。我正在尝试在“基本用法”下的github.com/natergj/excel4node 中运行他们的演示。您知道如何将输出 .xlsx 写入客户端的文件句柄,以便我可以在浏览器上下载文件并进行测试吗?
    • 是的,它基本上是一个隐藏的宝石。如果你想下载 xlsx 文件,你可以在这里尝试这个方法:github.com/exceljs/exceljs/issues/342#issuecomment-481225998
    • 是的,我几乎就是这样做的 wb.xlsx.writeBuffer() .then(buffer => { // 缓冲区 --> blob const blob = new Blob([buffer], { type: "application/vnd.ms-excel" }) let link = document.createElement('a') link.download = 'download.xlsx' link.target = 'blank' // blob --> url 链接。 href = URL.createObjectURL(blob) link.click() }) .catch(err => { throw err });大量的试验和错误让它到 dl 浏览器端。我不得不使用他们有很多依赖项的浏览器库
    【解决方案2】:

    使用XLSX library,它支持您需要的所有功能。

    【讨论】:

    • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 2019-01-25
    相关资源
    最近更新 更多