最近做一個(gè)項(xiàng)目,客戶要求對(duì)已經(jīng)生成好的RTF文件中的內(nèi)容進(jìn)行分頁(yè)顯示,由于之前對(duì)這方面沒(méi)有什么了解,后來(lái)在網(wǎng)上也找了相關(guān)的資料,并結(jié)合自己在MSDN上面的查找,后來(lái)總算把問(wèn)題給解決掉啦。下面對(duì)C#操作Word文檔(加密、解密、插入分頁(yè)符)做一個(gè)簡(jiǎn)單的總結(jié),希望對(duì)一些朋友有所幫忙吧。^_^
寫代碼之前,需要引用對(duì)應(yīng)的DLL文件:
1、Interop.Microsoft.Office.Interop.Word.dll? (網(wǎng)上可以下載)
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文檔保護(hù)密碼 8 string Pass = " ITIS@997168 " ; 9 object PassWord = Pass; 10 MSWord.Application wordApp; // Word應(yīng)用程序變量 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文檔設(shè)置保護(hù)功能,沒(méi)有設(shè)置保護(hù)功能,就解除密碼保護(hù) 34 if (wordDoc.ProtectionType != WdProtectionType.wdNoProtection) 35 { 36 wordDoc.Unprotect( ref PassWord); 37 } 38 39 // 跳轉(zhuǎn)到指定書簽 40 object toMark = MSWord.WdGoToItem.wdGoToBookmark; 41 // 分頁(yè)符 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 // 插入分頁(yè)符 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 // 插入分頁(yè)符 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 // 插入分頁(yè)符 60 wordDoc.ActiveWindow.Selection.InsertBreak( ref oPageBreak); 61 62 // 對(duì)Word文檔進(jìn)行加密保護(hù) 63 if (PassWord.ToString() != null ) 64 { 65 wordDoc.Protect(WdProtectionType.wdAllowOnlyReading, ref objFalse, ref PassWord, ref Nothing, ref Nothing); 66 } 67 68 69 // 將插入分頁(yè)符后的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 // 標(biāo)記為最終狀態(tài),禁止彈出對(duì)話框 73 // wordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone; 74 // 標(biāo)記為最終狀態(tài) 75 // wordDoc.Final = true; 76 77 // 關(guān)閉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 }
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
