gpt4 book ai didi

c# - 尝试阅读 MS Office 文档

转载 作者:太空宇宙 更新时间:2023-11-03 19:24:43 25 4
gpt4 key购买 nike

我有一大块代码用来阅读 MS Office Word 文档。

static void ReadMSOfficeWordFile(string file) {
try {
Microsoft.Office.Interop.Word.Application msWordApp = new Microsoft.Office.Interop.Word.Application();
object nullobj = System.Reflection.Missing.Value;
object ofalse = false;
object ofile = file;

Microsoft.Office.Interop.Word.Document doc = msWordApp.Documents.Open(
ref ofile, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj);
string result = doc.Content.Text.Trim();
doc.Close(ref ofalse, ref nullobj, ref nullobj);
msWordApp.Quit();
CheckLineMatch(file, result);
}
catch {
RaiseError("Unable to parse file because of MS Office error.", file);
}
}

我有三个问题。

首先 - 它依赖于在可能运行的每个系统上安装的 MS Office。有些人更喜欢 Libre Office,但这仍然需要针对 MS Office Word 文档运行。

其次 - 我不知道这是否适用于 MS Office 2003 和 MS Office 2007 文档...

第三 - 它很慢。速度慢得令人难以忍受。

所以!我认为必须有比这更好的运行方式。我猜有人必须知道比新手带来的更好的方法。我只是想阅读文档中的文本,没有别的。

最佳答案

我们可以通过 NPOI 实现很多目标,一个开源项目,没有任何办公室可靠性。

例如从一个word文档中读取所有文本可以实现如下所示。

public string ReadAllTextFromWordDocFile(string fileName)
{
using (StreamReader streamReader = new StreamReader(fileName))
{
var document = new HWPFDocument(streamReader.BaseStream);
var wordExtractor = new WordExtractor(document);
var docText = new StringBuilder();
foreach (string text in wordExtractor.ParagraphText)
{
docText.AppendLine(text.Trim());
}
streamReader.Close();
return docText.ToString();
}
}

关于c# - 尝试阅读 MS Office 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com