用richtextbox打开word文档[转]

本文介绍了一种使用VB.NET代码从Word文档中提取文本的方法,并确保与已打开的Word文档兼容,无论这些文档是否与当前操作相关。此外,还提供了一个改进后的代码示例,该示例能够处理多种文件格式,包括.rtf和.txt文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Dim word As Object
Dim documents As word.Document
Set word = CreateObject("word.application")
Set documents = word.documents.Open(CommonDialog1.FileName)
RichTextBox1.Text = documents.Content
documents.Close  '关闭文档
word.Quit

此方法可以打开,但可能字号的信息会丢失

下面给出代码,能打开任何一种:

Private Sub Cmddr_Click()  '导入

    Dim wordobj As Object

    '浏览要添加的的文件

    CommonDialog1.DialogTitle = "选择文本文件"

    CommonDialog1.InitDir = App.Path

    ’下面这句实际上已经过滤掉只有三种文件格式可以被打开,所以不存在aaaa.doc.gif文件格式

    CommonDialog1.Filter = "文本文件(*.txt;*.doc;*.rtf)|*.txt;*.doc;*.rtf"

    CommonDialog1.FileName = ""

    CommonDialog1.ShowOpen

    If CommonDialog1.FileName > "" Then

        If InStr(CommonDialog1.FileName, ".doc") > 0 Then

            On Error GoTo errhdl

            Set wordobj = New Word.Application

            With wordobj

            'Show Word

            .Visible = False

            .DisplayAlerts = wdAlertsNone

            'Create New Document

            .Documents.Open (CommonDialog1.FileName)

            'Add the document text to  RichTextBox1.Text

            RichTextBox1.Text = Replace(.ActiveDocument.Content.Text, Chr(13), vbCrLf)

            '.ActiveDocument.Close

            .ActiveWindow.Close

            End With

            Set wordobj = Nothing

            exit sub

errhdl: '出错处理

        MsgBox "请确认你是否安装了word软件?", vbCritical, "提示"

        Exit Sub

        

        ElseIf InStr(CommonDialog1.FileName, ".rtf") > 0 Then

                RichTextBox1.LoadFile CommonDialog1.FileName, rtfRTF

        Else

            RichTextBox1.LoadFile CommonDialog1.FileName, rtfText

        End If

    End If

End Sub

 

根据用户反应,修改了上面的代码:做了一个打开word文档的程序,不管事先用户已经打开了多少个word文档,而用户用程序不管打开是当前已经打开的文档还是另外一个文档,都是可以安全执行,不会与word有任何冲突,在这里由于他不需要我考虑是否机器上已经安装了word文档?但是我觉得还是要完善,希望有道朋友帮忙完善! 也希望下面能给要帮助的朋友们!!!

 Dim wordobj As Word.Application

'    Dim s As String

    Dim LsFileName As String

    Dim llCount As Integer

   

    '浏览要添加的的文件

    CommonDialog1.DialogTitle = "选择文本文件"

   ' CommonDialog1.InitDir = App.Path

    CommonDialog1.Filter = "文本文件(*.txt;*.doc;*.rtf)|*.txt;*.doc;*.rtf"

    CommonDialog1.FileName = ""

    CommonDialog1.ShowOpen

    If CommonDialog1.FileName <> "" Then

        If InStr(CommonDialog1.FileName, ".doc") > 0 Then

            If Dir(CommonDialog1.FileName) <> "" Then

                LsFileName = CommonDialog1.FileName

                On Error Resume Next

                Set wordobj = GetObject(, "Word.Application")

                For llCount = 1 To wordobj.Documents.Count   '找当前已经打开的word文档是否是程序要打开的

                    If Err.Number = 0 Then  '有word已经打开

                        If wordobj.Documents(llCount).FullName = LsFileName Then

                            RichTextBox1.Text = Replace$(wordobj.Documents(llCount).Content.Text, Chr$(13), vbCrLf)

                            Exit Sub

                        End If

                    End If

                Next

                If Err.Number <> 0 Then  '如果当前没有任何word进程

                    Err.Clear

                    Set wordobj = CreateObject("Word.Application") '创建word应用类

                End If

                wordobj.AutoCorrect.Application.DisplayAlerts = wdAlertsNone  '不提示

                wordobj.Documents.Open LsFileName   '打开文档

                RichTextBox1.Text = Replace$(wordobj.ActiveDocument.Content.Text, Chr$(13), vbCrLf) ' Replace$(.ActiveDocument.Content, Chr$(13), vbCrLf)

                wordobj.ActiveDocument.Close   '关闭激活的文档

                Set wordobj = Nothing   '释放对象

                Exit Sub

            Else

                MsgBox "没有该文件"

                Exit Sub

            End If

        ElseIf InStr(CommonDialog1.FileName, ".rtf") > 0 Then

                RichTextBox1.LoadFile CommonDialog1.FileName, rtfRTF

        ElseIf InStr(CommonDialog1.FileName, ".txt") Then

            RichTextBox1.LoadFile CommonDialog1.FileName, rtfText

        End If

    End If

End Sub




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值