我正在编写文本编辑器,我想添加导入.doc和.docx文件的可能性。我知道我可以使用OLE自动化,但如果我使用最新的OLE库,它将无法与那些使用较旧版本的Word的人一起使用,如果我使用旧版本,它将无法读取.docx文件。 有任何想法吗? 感谢
编辑:另一种解决方案是,就像我的应用程序使用HTML和RTF一样,将.doc和.docx文件与命令行转换为以下格式之一,如下所示:http://www.snee.com/bobdc.blog/ 2007/09 / using -word换命令行-co.html
答案 0 :(得分:2)
它适用于Office 2003 PIA,在运行Office 2010的计算机中进行了测试:
using System.IO;
using System.Reflection;
using Microsoft.Office.Interop.Word;
public string GetHtmlFromDoc(string path)
var wordApp = new Application {Visible = false};
//Cargar documento
object srcPath = path;
var wordDoc = wordApp.Documents.Open(ref srcPath);
//Guardarlo en HTML
string destPath = Path.Combine(Path.GetTempPath(), "word" + (new Random().Next()) + ".html");
if (wordDoc != null)
{
object oDestPath = destPath;
object exportFormat = WdSaveFormat.wdFormatHTML;
wordDoc.SaveAs(ref oDestPath, ref exportFormat);
}
//Cerrar
wordDoc.Close();
wordApp.Quit();
//Comprobar que el archivo existe);
if (File.Exists(destPath))
{
return File.ReadAllText(destPath, Encoding.Default);
}
return null;
}
答案 1 :(得分:1)
为什么不使用Office Primary Interop Assemblies(PIA)?
我认为您必须决定要支持的Word版本。我建议你把Word 2003定为最低。这将允许您使用Office 2003 PIA并对其进行编程。在机器中安装PIA也会安装绑定重定向,因此它们适用于Word上的较新版本。使用Word 2007或2010通过Office 2003 PIA打开.docx文件应该没有问题,尽管我自己没有尝试过。
答案 2 :(得分:0)
您应该能够使用.NET中的OpenXML库或xpath来读取/导入docx文件的内容。