您好,我知道如何打开并从 word 文件中获取纯文本以获取一些代码。但是,我对此产生了不好的影响。doc 这个词被锁定了,我不知道如何取消分配任何锁定它的东西。我最终想要的是打开一个将位于 UNC 路径中的文件并读取其中的一部分,无论其他人是否打开它,解析其中的行,关闭它,不保存任何内容或锁定文件。我能得到的最接近的是我可以打开一个文件,解析它,它会锁定,但是当我打开它并关闭它(运行代码的同一台机器)时,它会神奇地解锁它。
我对 COM 几乎一无所知,所以我搜索了一段时间,发现了有关 Marshall 对象的一些信息并添加了它。我试图打开和关闭参考“只读:真”,“只读:假”。我觉得我缺少一些简单的东西,所以我想我会在这里问。任何建议都是免费的,我在 .NET 4.0 中进行编码,所以你没有传递所有那些烦人的 obj = null, obj = null 来打开文档。
public static string ReadWordDoc(string loc)
{
Word.Application wordApp = new Word.Application();
Word.Document Doc = wordApp.Documents.Open(loc, ReadOnly: true);
sb = "";
foreach (Word.Paragraph objParagraph in Doc.Paragraphs)
{
try
{
sb += objParagraph.Range.Text + "\n";
}
catch (Exception ex)
{
throw ex;
}
}
return sb;
Doc.Close(SaveChanges: false);
Marshal.ReleaseComObject(Doc);
wordApp.Quit(SaveChanges: false);
}