2013-07-29 51 views
1

我需要动态删除word文档中的几个页面,页码将从配置文件中提取。我如何删除特定页面。如何动态删除word文档中的页面

+0

你可以在这里找到你的答案。 http://stackoverflow.com/questions/3754154/interop-word-delete-page-from-document –

+0

@KosalaW - 即使你分享的这个链接也不是C#。它是VB或VBA宏(实际上对于Word/Office编程的代码行是相同的) – Prash

回答

2

这里是您需要的VBA宏。你可以很容易地将它翻译成C#

Selection.HomeKey wdStory 
Selection.GoTo What:=wdGoToPage, Count:=3 
Selection.Bookmarks("\Page").Select 
Selection.Delete 

3在上面的代码是我想要删除的页码。您可以使用for循环并按降序开始删除页面(如果使用升序排列,页码会发生变化,最终删除的内容除了要删除的内容)。

希望这会有所帮助。

+1

问题与C#有关;不是VBA。 –

+0

@KosalaW - 我明白。我没有方便的Visual Studio。所以我用单词宏键入它。在C#中编写代码时将使用相同的API。只是,而不是**选择**它将** ** objDoc.Application.Selection **。智能感知肯定会有所帮助。 – Prash

+0

嗨Kosala,感谢您的帮助....但它不适用于C#...它不接受(/页)..... – user2586782

0
Its deleting pages 1,4,7.where i want to delete pages 1,3,5. 
int num = objWordDoc.ComputeStatistics(stat, ref missing); 
       int[] a = { 1,3,5}; 
       for (int i = 0; i < a.Length; i++) 
       { 
        object page_num = a[i];      
        objWordDoc.Application.Selection.GoTo(Word.WdGoToItem.wdGoToPage, Word.WdGoToDirection.wdGoToAbsolute, num, page_num); 
        objWordDoc.Application.Selection.Bookmarks[@"\Page"].Select();           
        objWordDoc.Application.Selection.Delete();   

        } 
+0

查看我已发布的答案下的评论。 – Prash

0

1,4,7.where我想删除1,3,5页它删除页面。

这很简单:当你删除页面1那么你的第3页为2页,如果您还删除第3页,那么你实际上是在

只是扭转阵列在你的代码删除原第4页 等你会很好{5,3,1}