代码之家  ›  专栏  ›  技术社区  ›  Luca Molteni

如何在不安装MS Office和不使用互操作库的情况下读取服务器中的MS Office文件?

  •  5
  • Luca Molteni  · 技术社区  · 18 年前

    互操作库速度较慢,需要安装MS Office。

    我想用 Apache POI ,但我在.NET上。

    我只需要提取文件的文本部分,而不是在Office文件中创建或“存储信息”。

    我需要告诉你,我有一个非常大的文档库,我无法将其转换为较新的XML文件。

    像ApachePOI这样的库为我们做到了这一点。不幸的是,它只适用于Java平台。也许我应该考虑用java编写这个应用程序。

    9 回复  |  直到 14 年前
        1
  •  3
  •   Yuhong Bao    13 年前

    对于所有MS Office版本:

    关于新办公室(2007年):

    对于旧办公室(2007年之前):

        2
  •  2
  •   Jason Z    18 年前

    查看 Aspose components . 它们旨在模拟互操作功能,而无需在服务器上安装完整的Office。

        3
  •  2
  •   Peter Mortensen Pieter Jan Bonestroo    15 年前

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

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

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

        4
  •  1
  •   Community Mohan Dere    9 年前

    你需要如何处理这些文件?如果您只想将它们流式传输给用户,那么基本文件流就可以了。如果要创建新文件(可能基于模板)以发送给用户,用户可以在Office中打开这些文件,可以使用多种方法 work-arounds

    如果您实际上将数据保存在Office文档中以供网站使用,那么您就错了。Office文档,甚至Excel电子表格和access数据库,都不是交互式网站的合适选择。

        5
  •  1
  •   RWendi    18 年前

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

    RWendi

        6
  •  1
  •   javashlook    17 年前

    在Java世界中,还有 JExcelApi . 它写得非常清楚,从我所能看到的,比POI更清晰。因此,甚至将该代码移植到.NET也不是不可能的,当然这取决于你手头有足够的时间。

        7
  •  0
  •   SteveO SteveO    18 年前

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

        8
  •  0
  •   pdc    18 年前

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

        9
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    15 年前

    Conversion Howto

    OpenOffice的参数。在该参数中,本地文件(Office文件)的名称为 编码的。