不少仪器数据报告输出为Word格式文件,同Excel文件,Word文件doc和docx的存储格式是不同的,相应的解析Word文件的方式也类似,主要有以下方式:
1.通过MS Word应用程序的DCOM接口;
2.WPS Word应用程序的DCOM接口,其他Office应用程序,例如Open Office等;
3.NPOI库;
4.MS Open XML;
5.Spire.Doc库;
实际操作中,MS与Open Office等不同厂家对Word(或泛指Office中的字处理软件文档)的格式定义标准有差别,因此存在兼容性的问题;
即使MS的docx格式文件,2007、2010、2013等不同版本虽然都使用XML格式定义,但仍然不同,也存在兼容性问题。
因此,多数客户终端使用MS Office的情况下,如果使用Open Office等其他应用程序来处理Word文档,则会出现很多问题。
能够很好处理MS Word文档的应用程序,好用的应用程序就是MS Office Word、WPS,好用的组件库就是Spire.Doc,NPOI(仅docx)。
使用组件库的好处是不需要安装应用程序,部署简单,另外通过.Net Framework调用也优于DCOM接口。
由于Spire.Doc为收费组件,所以建议使用NPOI解析Word,当然仅限于Word 2007+。
以下为关键代码,供参考:
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
xwpfDocument = new XWPFDocument((Stream)fileStream);
foreach (XWPFParagraph xwpfParagraph in (IEnumerable<XWPFParagraph>)xwpfDocument.Paragraphs)
stringBuilder.AppendLine(xwpfParagraph.ParagraphText);