使用JavaScript构buildXLSX文件

我正在尝试使用一些数据库查询结果使用JavaScript构build一个XLSX文件。 我必须使用JavaScript作为服务器后端只提供一个JavaScript接口来处理(而不是像jQuery)。 现在,我似乎已经发现了实际创buildbase64编码数据以写入文件(服务器接口提供了一个使用base64编码的string创build文件并定义文件types的API)的内容。 XLSX.js看起来好像可以达到这个目的,因为它看起来像可以读取某种forms的JS对象并将其转换为base64string。 不过,我还不清楚如何生成工作表XML数据,或者我想如何构build一个具有代表性的JS对象。 我能find的唯一有用的信息,如果我甚至可以find关于结构化的信息,那么我真的不知道如何build立它。 我find的大部分是关于阅读文件,而不是创build它们。 另外,我还以为自己发现了一些实现方法的简单方法,但随后又陷入了一大堆的库中,我试图去理解哪些文件实际上是必需的,以及如何正确地将它们包含在工作中。

您可以使用Alasql库将数据从js导出为XLS,XLSX和CSV格式。

例如,我们想通过点击一个button来写一个我们保存在XLSX文件中的testingvariables中的数据。 要做到这一点,只需使用以下步骤:

1-在您的页面中包含以下文件:

<script src="http://alasql.org/console/alasql.min.js"></script> <script src="http://alasql.org/console/xlsx.core.min.js"></script> 

然后在控制器中创build一个函数,将testing数组保存为xlsx文件:

 function saveAsXlsx(){ alasql('SELECT * INTO XLSX("output.xlsx",{headers:true}) FROM ?',[test]); } 

所以我们把我们在variablestesting中的数据保存到一个名为output.xlsx的文件中。

3-最后一部分是最简单的部分。 点击button运行该function:

  <button onclick="saveAsXlsx()" >Save as XLSX</button> 

我已经放弃了在我正在使用的环境中创build一个XLSX文档。我已经提供了一种方法来创build一个XLS文件,使用Excel 2003的XML格式,似乎可以工作,除了在尝试时发出警告打开以这种方式生成的文件,说明该文件的格式与扩展名所指定的格式不同。 除了这个警告之外,我已经能够创build在Excel中打开的可行文件,并且performance相当好。

我想也许我将不得不离开生成任何未来的.NET项目,我可能有XLSX文件。 这种做法很糟糕,但是感谢大家的回应。

Excel支持两种forms的XML文档作为input。 一个是ZIP档案,其中包含各种XML文档和其他数据。 这是标准的XLSX文件格式。

第二种forms就是作为XML文档的工作表数据本身。 所以你所需要的就是创buildXML作为string。 维基百科有一个Excel XML格式的例子 。 您可以在“ 外部链接 ”下find参考文档的链接

如果以这种格式创build文件并将其保存为.xslx ,则Excel应能够将其打开。 如果不是,则尝试使用.xsl扩展名。 如果您在格式化某些东西时遇到问题,请在Excel中执行此操作,保存并查看生成的文件。

我不确定XLSX.js会有很大的帮助,因为它是一个依赖于jQuery和jszip等的浏览器/客户端框架。 “base64和back”选项是指将Excel工作表添加到HTML文档,并以base64stringforms添加。 然后框架可以打开这个虚拟文件并检查它。 我认为这并不意味着要生成Excel文件进​​行下载。