有没有办法编写一个适用于所有可能的办公文档的代码?

时间:2013-01-30 18:46:20

标签: c# ms-word interop translation

我正在编写一个修改word文档的程序。目前我已经使用Microsoft.Office,Interop.Word来处理Word文档,它要求在用户计算机上安装Microsoft Office,但是我的一些客户没有MS Office,但他们有Open Office。 那么,我应该使用哪个库而不是Interop?

以及如何让我的代码能够处理不同的word文件,不仅是.doc和.docx,还有其他办公程序文件? 目前我正在为每种类型的文档编写不同的代码..

我的程序将文档从原始语言翻译成另一种语言,因此对我来说保持原始格式的文档格式非常重要,这就是我使用Interop的原因..但我也希望我的程序对我有用尽可能多的人

3 个答案:

答案 0 :(得分:3)

我认为您没有提及但是,您是否假设所有客户使用相同版本的Office。要解决Office版本的问题,您可能需要查看这个开源项目:NetOffice http://netoffice.codeplex.com/并使用该库完成所有.doc和.docx文件格式的开发。

对于OpenOffice或LibreOffice,我相信您可以做的最好的事情是进入项目网站并下载SDK。例如,转到此处:http://api.libreoffice.org/examples/examples.html您将在Java,Python,C ++中找到一些示例来编辑包含odt文件的文本文档。

LibreOffice SDK在此处下载:http://www.libreoffice.org/download/

最后,还有OpenXML格式(在另一个答案中提到),它是: ECMA Office Open XML(“Open XML”)是一个国际开放的文字处理文档,演示文稿和电子表格标准,可以在多个平台上由多个应用程序自由实现。

您也可以在此处下载其SDK:http://msdn.microsoft.com/en-us/office/bb265236.aspx

希望有所帮助。

答案 1 :(得分:1)

您可能最终会编写单独的代码来处理每种文件类型。例如,Office产品中可能存在一些相似之处,但在大多数情况下,每种类型都需要adapter

但是,您可以(并且应该)通过将转换逻辑和其他非类型特定的函数放在每个适配器随后引用的共享库中来最小化重复代码的数量。

答案 2 :(得分:0)

我们正在使用aspose words。这支持DOC,DOCX,RTF和OOXML。 但它不是免费的。