如何从 JavaScript 生成 Excel xlsx 文件

Posted

技术标签:

【中文标题】如何从 JavaScript 生成 Excel xlsx 文件【英文标题】:How to generate Excel xlsx files from JavaScript 【发布时间】:2017-04-26 20:21:50 【问题描述】:

我们目前正在从ui-grid 自定义菜单导出到 Excel。 xls Excel 文件由 javascript 生成(在 UI 中);但是,我们需要支持xlsx 格式。问题是当我们将扩展名更改为xlsx 时,在 Excel 2013is 中打开文件会产生错误。

这是一个 JavaScript 代码 sn-p 显示我们如何保存 xls 文件:

var blob = new Blob([html],  type: 'data:application/vnd.ms-excel;base64,' );
saveAs(blob, "exported.xls");

我们可以在不依赖第三方包的情况下完成从JavaScriptxlsx 的导出吗?

我正在查看msdn 上的Open XML file formats,但它似乎是面向服务器端的;即从c#生成xlsx文件。

这是一个从 c# 生成的示例 - https://msdn.microsoft.com/en-us/library/office/gg278309.aspx

如果问题过于笼统,我深表歉意,因为我正在努力寻找合适的解决方案。

问候

【问题讨论】:

为什么要在客户端创建 xlsx 文件?建议在服务器端生成文件。 我们的应用程序中也确实具有服务器端功能;但是,我们从 ui-grid 中的“快速导出”选项允许我们快速导出 ui-grid 行,而无需额外访问服务器。我看到它可能无法做到这一点...... 【参考方案1】:

Javascript 运行在哪里?如果您的意思是在您的浏览器中,那么简短的回答是否定的 - 安全模型不允许 Javascript 创建文件。

但可能数据正在进入您的页面,javascript 可以从 某处 读取它 - 所以只需在那里生成文件。

【讨论】:

我刚刚澄清了我的帖子,我指的是浏览器中的 JavaScript。问题是当我们将扩展名更改为xlsx 时,打开文件本身就会产生错误。

以上是关于如何从 JavaScript 生成 Excel xlsx 文件的主要内容,如果未能解决你的问题,请参考以下文章

excel图表坐标轴数据从大到小生成图表

如何将数据库的表导出生成Excel

利用JavaScript所见即所得的生成Excel表格

如何从Excel工作表生成图表?

JS-XLS/X读取和解析Excel表格文件(xls/xlsx)的JavaScript插件

如何将 csv 转换为 json 并编写特定函数以使用 javascript 生成图形?