程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#操作Word文檔(加密、解密、對應書簽插入分頁符)

C#操作Word文檔(加密、解密、對應書簽插入分頁符)

編輯:C#入門知識

最近做一個項目,客戶要求對已經生成好的RTF文件中的內容進行分頁顯示,由於之前對這方面沒有什麼了解,後來在網上也找了相關的資料,並結合自己在MSDN上面的查找,後來總算把問題給解決掉啦。下面對C#操作Word文檔(加密、解密、插入分頁符)做一個簡單的總結,希望對一些朋友有所幫忙吧。^_^

寫代碼之前,需要引用對應的DLL文件:

1、Interop.Microsoft.Office.Interop.Word.dll  (網上可以下載)

2、mscorlib.dll  (添加引用--->.NET中即可找到)

 1 using Microsoft.Office.Interop.Word;
 2 using MSWord = Microsoft.Office.Interop.Word;
 3 using System.Reflection;
 4 
 5 private void button1_Click(object sender, System.EventArgs e)
 6  {
 7             //Word文檔保護密碼
 8             string Pass = "ITIS@997168";
 9             object PassWord = Pass;
10             MSWord.Application wordApp;  //Word應用程序變量
11             MSWord.Document wordDoc;    //Word文檔變量
12             try
13             {
14                 object Nothing = Missing.Value;  //初始化
15                 wordApp = new MSWord.ApplicationClass();
16 
17                 // 打開已存在的Word
18                 object FileName = @"E:\archive\CMPLatest_2117_230614-1053.Rtf";
19                 object readOnly = false;
20                 object isVisible = true;
21                 object objFalse = false;
22 
23                 wordDoc = wordApp.Documents.Open(ref FileName, ref Nothing, ref readOnly, ref Nothing, ref PassWord, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref isVisible, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
24 
25                 //激活Word文檔
26                 wordDoc.Activate();
27                 //判斷是否有密碼
28                 if (wordDoc.HasPassword)
29                 {
30                     wordDoc.Password = null;
31                 }
32 
33                 //檢查是否為Word文檔設置保護功能,沒有設置保護功能,就解除密碼保護
34                 if (wordDoc.ProtectionType != WdProtectionType.wdNoProtection)
35                 {
36                     wordDoc.Unprotect(ref PassWord);
37                 }
38 
39                 //跳轉到指定書簽
40                 object toMark = MSWord.WdGoToItem.wdGoToBookmark;
41                 //分頁符
42                 object oPageBreak = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;  
43 
44                 //定義書簽名稱  PartB
45                 object BookMarkName_b = "bmf_b";
46                 wordDoc.ActiveWindow.Selection.GoTo(ref toMark, ref Nothing, ref Nothing, ref BookMarkName_b);
47                 //插入分頁符
48                 wordDoc.ActiveWindow.Selection.InsertBreak(ref oPageBreak);
49                 
50                 //定義書簽名稱  PartC1
51                 object BookMarkName_c1 = "bmf_c1";
52                 wordDoc.ActiveWindow.Selection.GoTo(ref toMark, ref Nothing, ref Nothing, ref BookMarkName_c1);
53                 //插入分頁符
54                 wordDoc.ActiveWindow.Selection.InsertBreak(ref oPageBreak);
55 
56                 //定義書簽名稱  PartC2
57                 object BookMarkName_c2 = "bmf_c2";
58                 wordDoc.ActiveWindow.Selection.GoTo(ref toMark, ref Nothing, ref Nothing, ref BookMarkName_c2);
59                 //插入分頁符
60                 wordDoc.ActiveWindow.Selection.InsertBreak(ref oPageBreak);
61 
62                 //對Word文檔進行加密保護
63                 if(PassWord.ToString() != null)
64                 {
65                     wordDoc.Protect(WdProtectionType.wdAllowOnlyReading, ref objFalse, ref PassWord, ref Nothing, ref Nothing);
66                 }
67                 
68 
69                 //將插入分頁符後的Word文檔保存一下
70                 wordDoc.SaveAs(ref FileName, ref Nothing, ref Nothing, ref Nothing, ref objFalse, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref isVisible, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
71 
72                 //標記為最終狀態,禁止彈出對話框
73                 //wordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone;
74                 //標記為最終狀態
75                 //wordDoc.Final = true;
76 
77                 //關閉Word文檔
78                 wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
79                 wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
80             }
81             catch(Exception ex)
82             {
83                 
84             }
85 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved