C#操作Word文档(加密、解密、对应书签插入分页

系统 2526 0
原文: C#操作Word文档(加密、解密、对应书签插入分页符)

最近做一个项目,客户要求对已经生成好的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
      
       }
    

 

C#操作Word文档(加密、解密、对应书签插入分页符)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论