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

Aya*_*hby 5 c# ms-word

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

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

Las*_*sen 17

为了说明如何做到这一点,我刚刚创建了一个基于.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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为此,您需要引用以下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