【发布时间】:2011-10-08 09:14:40
【问题描述】:
目前我们的应用程序将大数据导出到服务器中的 office 2003 xml 电子表格格式。 用户可以下载xml文件。该文件可以在office 03和07中轻松正确打开。 我想知道是否可以从服务器中的这个 xml 文件创建 xls 和 xlsx 格式并将它们提供给用户?
[服务器没有办公室,也不会。所以在这种情况下互操作是无用的。]
====== 编辑=====
不能使用第三方解决方案... :(
【问题讨论】:
目前我们的应用程序将大数据导出到服务器中的 office 2003 xml 电子表格格式。 用户可以下载xml文件。该文件可以在office 03和07中轻松正确打开。 我想知道是否可以从服务器中的这个 xml 文件创建 xls 和 xlsx 格式并将它们提供给用户?
[服务器没有办公室,也不会。所以在这种情况下互操作是无用的。]
====== 编辑=====
不能使用第三方解决方案... :(
【问题讨论】:
如果我正确理解了您的问题,那么您提供的不仅仅是“纯”XML,而是 Excel 将其解释为二进制格式的普通 Excel 文件的 SpreadsheetML。所以你的用户已经有了一个非常好的解决方案。你是如何创建这些文件的?我使用 XSLT 将我的 XML 数据转换为 SpreadsheetML,它只是一种特定的 XML 格式。通过这种方式,我可以在 Excel 中做任何可能的事情(格式、公式等)。它不仅仅是将 XML 转换为 CSV。
你为什么要改变这个?我可以看到生成的 XML-Excel 文件通常很大,是这个原因吗?
现在,由于 Excel 2007 格式 (xlsx) 基本上是一些描述文件结构和数据的 XML 文件的 zip 存档 - 只需将任何 xlsx 的文件扩展名重命名为 zip 并在提取后检查 - - 您可能能够调整您现有的解决方案,即,而不是创建一个 SpreadsheetML-(XML) 文件,而是创建多个并将它们打包/压缩到服务器中。我假设您的正常服务器安装应该有必要的工具。
但是——这个解决方案很难维护(你可能知道你当前的解决方案——如果我没问题的话),并且为了添加新功能而对 XSLT 进行更改需要相当多的知识。所以我也可以再次推荐 Aspose.Cells,即使是一些知识渊博的用户也可能能够更改简单的格式。
HTH 安德烈亚斯
【讨论】:
使用您的 XML 文件,您可以轻松地使用 XSLT 将您的 XML 转换为 CSV。但是,如果您确实需要以原生 Excel 电子表格类型导出,那么使用组件可能是个好主意。
我推荐我们过去使用的东西是Aspose.Cells——我们已经用它来生成 Excel 电子表格,其中纯 CSV 输出是不够的(你确定它在你的情况——XSLT 可以解决这个问题)。
虽然它不是免费的,但它可以省去在服务器上安装 Office(并避免使用 Office 自动化等)并且提供非常好的支持。
编辑了以下 cmets:
如果你不能使用第三方组件,如果你不能在服务器上安装 Office,并且你不能使用互操作,那么——除非你想舒服并阅读微软提供的Excel Binary File Format (.xls) Structure Specification——答案很短:没有。
【讨论】:
您可以使用 Open XML SDK 创建或读取 xlsx 文件。 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5124
【讨论】:
如果您没有 Office 2003 *或更高版本)引用该项目的 DLL,恐怕您无法直接在程序中读取该 Office XML 数据,除非您当然可以手动解析整个 XML研究它的格式。
【讨论】: