互操作的图书馆是缓慢和需要MS办事处安装。很多时候你不想要安装MS Office在服务器上。

我想用 Apache POI, 但是我。网。

我只需要提取该案文的部分文件,不是建立,也不是"存储信息的"在办公室文件。

我需要告诉你我已经有了一个很大的文件库,并且我不能把这转换为新的XML文件。

我不想写一个分析器的二进制文件的文件。图书馆喜欢Apache POI这对于我们。不幸的是,它只是为Java平台。也许我应该考虑编写这个应用程序。

我还没有找到一个开放源的替代POI。净,我认为我会写我自己的应用程序。

有帮助吗?

解决方案

所有微软办公软件的版本:

新的办公室(2007年):

对旧办公室(2007年前):

其他提示

查看 Aspose组件。它们旨在模拟Interop功能,而无需在服务器上安装完整的Office。

由于新的docx格式本质上是基于XML的文件,因此一旦您了解了结构,就可以使用标准XML DOM技术以编程方式创建和操作它们。

这些文件基本上是zip存档,具有备用文件扩展名。使用 System.IO.Packaging 命名空间来访问文件的内部元素,然后将它们打开到 XmlDocument 中以执行操作。

有一些例子可以做到这一点,SourceForge上的Office Open XML项目可能值得寻找灵感。

对于较旧的二进制格式,这些格式是MS专有的,您从内部获取内容的唯一方法是通过Office对象模型(需要Office安装)或第三方文件转换器/解析器。

不幸的是,.NET平台没有任何第一方和本地人可以处理这些文件。

你需要什么做那些文件?如果你只是想流他们的用户,然后基本文件流的罚款。如果你想要创建新的文件(也许根据模板)发送给用户,用户可以打开办公室,有多种或 工作变通.

如果你实际上是保持数据办公室的文件使用的网站,你这样做是错误的。办公室的文件,甚至Excel电子表格,并访问数据库,是不是真的一个合适的选择使用的一个互动网站。

如果文档是word 2007格式,您可以使用system.io.packaging库以编程方式与其进行交互。

RWendi

在Java世界中,还有 JExcelApi 。从我能看到的内容可以非常清楚地写出来,比POI更清晰。因此,即使是.NET代码的端口也不是不可能的,当然,你手上有足够的时间。

OpenOffice的。

您可以针对它进行编程并让它为您做很多事情,而无需花钱购买服务器许可证,或者在服务器上存在与之相关的漏洞。

可以使用ODBC驱动程序(或者它是OLE DB驱动程序?不记得)来读取Microsoft Excel工作簿,这使得工作簿看起来像数据库表。但我不知道没有Office套件本身是否可以使用该驱动程序。

您可以使用OpenOffice。它有一个命令行转换工具:

Conversion Howto

简而言之,您在OpenOffice中定义一个宏,并使用命令行调用该宏 OpenOffice的参数。在该参数中,本地文件(Office文件)的名称是 编码。

这不是一个很好的解决方案,但它应该是可行的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top