.Net Aspose.Words从word文档中读取

时间:2013-11-13 21:16:53

标签: c# .net excel file-io aspose.words

我使用Aspose写入word文件并读取和写入excel文件。我试图让Aspose.Words从Word文档中读取但我不断收到错误消息。我已经关注了Aspose.com的示例,但这些示例并没有用。我在论坛上发帖,但我还没有收到他们的回复。

我想从每个word文档中读取这些字段代码(例如:{fillin "Date" \d ""}),其中有多个字文档。一旦我能够获取那些,我想把它们放在List<string>中并验证它们不是重复的。在浏览完所有文档后,我需要将该列表打印到Excel电子表格中。

有人可以帮我解决这个错误问题或者告诉我一个更简单的方法吗?

问题#1 - 无法识别该文件。

//string path = @"C:\Users\kbangert\Desktop\Karpel\HonoluluHIChargeCode2\Charge Language\10C104X.doc";
//string file = ConfigurationManager.AppSettings["filePath"] + "10C104X.doc";
//Document doc = new Document(path);
//Document doc = new Document(file);
Document doc = new Document(@"10C104.docx"); 

我尝试了不同的技术并且得到了相同的错误 - “UnsupportedFileFormatException未处理”或“FileCorreptionException未处理”。我知道文件很好,因此导致此问题的字段代码是什么?

问题#2 - 无法解析符号'Fields'或'FieldCollection'

StringBuilder sb = new StringBuilder();
FieldCollection fields = doc.Range.Fields;
foreach (Field field in fields)
    sb.AppendLine(field.GetFieldCode());

这来自Aspose的开发人员,这引发了上述错误。

1 个答案:

答案 0 :(得分:0)

对于问题#1,没有确切知道文件失败的原因,因此您需要让Aspose参与其中。但是,我们使用以下Aspose方法来确定Aspose是否能够打开文件:

Aspose.Words.FileFormatUtil.DetectFileFormat(fileName).LoadFormat

在尝试使用System.IO.File.Exists打开文件之前,您还应该仔细检查文件是否存在应用程序预期存在的位置。

对于问题#2,您需要将字段的命名空间添加到类的顶部:

using Aspose.Words.Fields;

此外,看起来开发人员可能提供的信息与您使用的版本不同。在我们的代码中,引用是doc.Range.FormFields,集合类型是FormFieldCollection。我不确定GetFieldCode等价物是什么。