我想使用C#中的Microsoft.Office.Interop.Word逐页提取.DOCX文件中的文本。
目前我通过下面提到的方法获取文件的所有文本,但我想逐页阅读,所以我该怎么办呢
public void ImportWordFile()
{
object path = @"C:\Users\Vipin\Desktop\test.docx";
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
object miss = System.Reflection.Missing.Value;
object readOnly = true;
Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
string totaltext = "";
for (int i = 0; i < docs.Paragraphs.Count; i++)
{
totaltext += " \r\n " + docs.Paragraphs[i + 1].Range.Text.ToString();
}
var numberOfPages = docs.ComputeStatistics(Word.WdStatistic.wdStatisticPages, false);
Debug.Write("WordFileText = " + numberOfPages);
docs.Close();
word.Quit();
}
答案 0 :(得分:0)
麻烦的是,Word实际上并不适用于页面,这就是为什么首先需要“计算”页面的数量(基本上是Word要求打印机)。
尽管如此,它可能会在以下小代码中运行:
for(int i = 1;i<= numberOfPages; i++)
{
var pageRange = docs.Range()
.GoTo(Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage,
Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToAbsolute, i);
//do your magic
}
希望这有帮助。