如何以编程方式(C#)确定.docx文件的页数

我有大约400个.docx格式的文件,我需要在#pages中确定每个文件的长度。

因此,我想编写C#代码来选择包含文档的文件夹,然后返回每个.docx文件的#pages。

为了说明如何做到这一点,我刚刚创建了一个基于.NET 4.5和一些Microsoft Office 2013 COM对象的C#控制台应用程序。

using System; using Microsoft.Office.Interop.Word; namespace WordDocStats { class Program { // Based on: http://www.dotnetperls.com/word static void Main(string[] args) { // Open a doc file. var application = new Application(); var document = application.Documents.Open(@"C:\Users\MyName\Documents\word.docx"); // Get the page count. var numberOfPages = document.ComputeStatistics(WdStatistic.wdStatisticPages, false); // Print out the result. Console.WriteLine(String.Format("Total number of pages in document: {0}", numberOfPages)); // Close word. application.Quit(); } } } 

为此,您需要引用以下COM对象:

  • Microsoft Office对象库(在我的情况下为15.0版)
  • Microsoft Word对象库(在我的案例中为15.0版)

两个COM对象使您可以访问所需的命名空间。

有关如何引用正确组件的详细信息,请参阅“3.设置工作环境:”部分: http : //www.c-sharpcorner.com/UploadFile/amrish_deep/WordAutomation05102007223934PM/WordAutomation.aspx

有关通过C#进行Word自动化的快速和更一般的介绍,请参阅: http : //www.dotnetperls.com/word

– 更新

有关方法Document.ComputeStatistics可以在这里找到访问页数的方法: http : //msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.computestatistics.aspx

如文档中所示,该方法采用WdStatistic枚举,使您能够检索不同类型的统计信息,例如页面总量。 有关您可以访问的完整统计信息的概述,请参阅WdStatistic枚举文档,该文档可在此处找到: http : //msdn.microsoft.com/en-us/library/microsoft.office。 interop.word.wdstatistic.aspx

使用DocumentFormat.OpenXml.dll你可以在C:\ Program Files \ Open XML SDK \ V2.0 \ lib中找到dll

示例代码:

 DocumentFormat.OpenXml.Packaging.WordprocessingDocument doc = DocumentFormat.OpenXml.Packaging.WordprocessingDocument.Open(docxPath, false); MessageBox.Show(doc.ExtendedFilePropertiesPart.Properties.Pages.InnerText.ToString()); 

要使用DocumentFormat.OpenXml.Packaging.WordprocessingDocument类,您需要在项目中添加以下引用

DocumentFormat.OpenXml.dll和Windowsbase.dll