在没有安装Office的情况下在服务器上操作Word文档(ASP.NET)

我正在编写一个代码来制作MS Word到HTML系统。 谷歌搜索大约半分钟后,我能够找到完全符合我需要的代码。 现在..它在ASP.NET开发服务器上脱机工作,但是当我在服务器上传文件时它不起作用。

我读了几个post,问题似乎是因为服务器上没有安装MS Office。 现在,我不确定它是否有,我仍然在收集来自好人@托管的电子邮件(但我认为它没有安装),但我的问题是……

有没有办法让它在没有安装MS Office的情况下工作? 我正在使用Microsoft.Office.Interop.Word ver。 12. / ASP 3.5 / C#和我得到的错误是

无法加载文件或程序集“Microsoft.Office.Interop.Word,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c’或其依赖项之一。

感谢您的时间!

Interop库本身不是一个“工作”库,它只是winword.exe for .NET程序的包装器,所以如果你不安装或使用Microsoft Word,使用这个库是没有任何意义的。

相反,您需要找到一个允许操作Word文档的库。 如果您可以将文档限制为新格式(docx),那么这将是一项非常简单的任务,例如使用OOXML SDK (也是Stilgar提出的)。 但也有旧格式的库。

更新:我不得不承认,虽然我确信我之前搜索并找到了一些旧的doc格式的库,但我还是找不到那些,可能是因为结果列表被docx的许多提议“宠坏了”。 要明确:

如果您能够坚持使用docx(2007或更高版本)格式,那么您应该这样做。 Office Open XML是一种基于ZIP和XML的(或多或少)开放标准,许多工具已经存在并将在未来开发。 现在,旧格式的支持要少得多。

如果你必须使用旧格式,那么Aspose (由Uwe提出)是我找到的唯一库。

我使用的是Aspose.Words ,一个商业软件包。

我认为OOXML SDK 可能包含一些内容,但它只适用于docx而不适用于旧文档。

至于旧格式,我也感兴趣的是一种便宜而简单的方法来支持它们,而无需使用Automation API

  1. 你应该更好地解释你想要达到的结果
  2. 没办法,MS Office互操作需要MS Word安装在服务器上
  3. 根据您的需要,您应该找到最好的第三方库(我建议使用OpenXml.WordprocessingDocument ),但必须重写代码。

你可以使用Code7248.word_reader.dll

下面是有关如何使用Code7248.word_reader.dll的示例代码

在项目中添加对此DLL的引用,并复制到代码下方。

using System; using System.Collections.Generic; using System.Text; //add extra namespaces using Code7248.word_reader; namespace testWordRead { class Program { private void readFileContent(string path) { TextExtractor extractor = new TextExtractor(path); string text = extractor.ExtractText(); Console.WriteLine(text); } static void Main(string[] args) { Program cs = new Program(); string path = "D:\Test\testdoc1.docx"; cs.readFileContent(path); Console.ReadLine(); } } }