如何以编程方式创build一个“真正的”Excel文件

可能重复:
在ASP.NET中生成Excel文件

这是我的问题:你如何以编程方式创build一个“真正的”Excel文件?

注意:我不是指CSV,HTML / CSS或XML文件,而是指用Excel用来保存电子表格的文件。

背景:我正在研究一个ASP.Net应用程序,其中包括Telerik的RadGrid。 我们目前正在使用RadGrid的ExportToExcel()函数,但我们的一些客户需要能够使用Excel Viewer查看这些导出。 Telerik的function导出基于HTML / CSS的文件,完整版本的Excel可以打开,但Excel Viewer不能。

我敢肯定它可能以编程方式创build一个“真正的”Excel文件,但我不知道从哪里开始。 有没有一个SDK可以帮助我做到这一点?

任何build议,将不胜感激。 提前致谢。

你可以使用Excel中的互操作方式,就像RedFilter向你展示的那样,但是也有一些开源的替代scheme,它不需要你的电脑上安装Excel来工作。 如果您在没有Excel的服务器上部署了一个asp.net项目,这会非常有用。

EPPlus是一个很好的图书馆。 http://epplus.codeplex.com/

个人而言,我使用Koogra。 http://sourceforge.net/projects/koogra/?_test=b

您可以从Microsoft获得Office文件格式规范,但二进制格式在各个地方都非常复杂。 尽pipe如此,你也许可以轻松实现。 这是.xls二进制文件格式规范 。 我build议使用Office 2007和2010使用的新XML格式 – 请参阅Office Open XML标准中的WikiPedia文章 。

唯一想到的另一个select是使Excel自动化并使其生成文件。

您可以使用互操作(如另一个答案中所述),但是它在服务器环境中不受官方支持。

另一个解决scheme是使用OpenXML SDK 2.0 ,它应该允许你创buildXLSX文件。 它可以从这里下载: http : //www.microsoft.com/download/en/details.aspx?displaylang= en& id=5124 。 如果您决定使用此解决scheme,那么我build议您查看一下OpenXML SDK 2.0生产力工具

Apache POI是用于编写Excel文件的stream行且可靠的Java库。 NPOI是用.NET编写Excel文件的另一个好select(http://npoi.codeplex.com)。

最新版本的ExcelViewer显然支持以下文件格式:

您只能打开Excel文件(.xlsx,.xlsm,.xlsb,.xltx,.xltm,.xls,.xlt,.xlm和.xlw)。 即使您可以打开已启用macros的文件(.xlsm,.xltm和.xlm),也将无法运行macros。

所以… XML格式的文件不是问题 – 因此适当的解决scheme是编写OpenXML格式。 不幸的是,这并不好玩,你可以做,工具包可以让你逆向工程,但代码是可怕的。

所以,如果是我(现在和将来),我会查看ClosedXML来生成OpenXML文档 – 这是我下一次列表中的首要位置。

当然,也有一些商业select – 如何适合取决于您的具体使用情况。

尽pipe如此,“正确的”答案是无论如何都要生成OpenXML(.xlsx)文档。


编辑:参考: ExcelXMLWriter是错误的 – 这将不会帮助其ExcelML