首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在word文档中嵌入多个excel文件,并显示为图标

在word文档中嵌入多个excel文件,并显示为图标
EN

Stack Overflow用户
提问于 2014-02-20 16:37:33
回答 2查看 976关注 0票数 0

我可以将一个excel文件复制到一个显示为图标的word文档中。但是当我从一个文件夹中选择多个文件时,发生的情况是每个文件都被复制到新的word文档中。换句话说,我无法一次将多个文件嵌入到单个word文档中。

另外,在我的代码中,我必须在word文档中从头开始创建一个书签。我想通过代码在word文档中动态创建书签。

谁能教我如何通过代码动态创建书签,以及如何将多个文件同时嵌入到单个word文档中。

这是我的工作代码,一次只嵌入一个文件。

代码语言:javascript
复制
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim ofd As New OpenFileDialog
    ofd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
    ofd.Filter = "Excel Files (*.xls;xlsx)|*.xls;xlsx"
    ofd.FilterIndex = 2
    ofd.RestoreDirectory = True
    ofd.Multiselect = True

    Dim Files As String = ofd.InitialDirectory
    If ofd.ShowDialog() = DialogResult.OK Then

        For Each Files In ofd.FileNames

            Dim filename As String = ofd.FileName

            Dim oWord As Word.Application = New Word.Application()
            Dim oWordDoc As Word.Document = oWord.Documents.Open("C:\testing.doc", False)
            Dim oMissing As Object = System.Reflection.Missing.Value
            oWord.Visible = True


            'ICON LABEL CAN BE THE NAME OF THE FILE, 
            'ITS THE NAME DISPLAYED BESIDES THE EMBEDDED DOCUMENT

            Dim oIconLabel As Object = filename                


            'THE BOOKMARK WHERE THE FILE NEEDS TO BE EMBEDDED
            Dim oBookMark As Object = "ssss"
            '//THE LOCATION OF THE FILE
            Dim oFileDesignInfo As Object = filename


            '//OTHER VARIABLES
            Dim oClassType As Object = "Word.Document.8"
            Dim oTrue As Object = True
            Dim oFalse As Object = False
            'Dim oMissing As Object = System.Reflection.Missing.Value
            Dim oIconFileName As Object = oMissing

            'METHOD TO EMBED THE DOCUMENT

            oWordDoc.Bookmarks.Item(oBookMark).Range.InlineShapes.AddOLEObject(oClassType, oFileDesignInfo, _
            oFalse, oTrue, oIconFileName, oMissing, oIconLabel, oMissing)

            Next
    End If
End Sub
EN

回答 2

Stack Overflow用户

发布于 2014-02-21 01:33:58

打开新的word实例并加载文档的代码在循环中-将其移出循环,以便只运行一次。

代码语言:javascript
复制
Private Sub Button1_Click(ByVal sender As System.Object, _
                 ByVal e As System.EventArgs) Handles Button1.Click

    Dim ofd As New OpenFileDialog
    ofd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
    ofd.Filter = "Excel Files (*.xls;xlsx)|*.xls;xlsx"
    ofd.FilterIndex = 2
    ofd.RestoreDirectory = True
    ofd.Multiselect = True

    Dim Files As String = ofd.InitialDirectory
    If ofd.ShowDialog() = DialogResult.OK Then

        Dim oWord As Word.Application = New Word.Application()
        Dim oWordDoc As Word.Document = oWord.Documents.Open("C:\testing.doc", False)
        Dim oMissing As Object = System.Reflection.Missing.Value
        oWord.Visible = True

        For Each Files In ofd.FileNames
            '*************
            'rest of code....
            '*************
        Next
    End If
End Sub
票数 0
EN

Stack Overflow用户

发布于 2014-02-25 21:06:57

终于做到了,successfully...Here是它的工作代码:

代码语言:javascript
复制
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim ofd As New OpenFileDialog
    ofd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
    ofd.Filter = "Excel Files (*.xls;xlsx)|*.xls;xlsx"
    ofd.FilterIndex = 2
    ofd.RestoreDirectory = True
    ofd.Multiselect = True

    Dim Files As String

    If ofd.ShowDialog() = DialogResult.OK Then

        Dim oWord As Word.Application = New Word.Application()
        Dim oWordDoc As Word.Document = oWord.Documents.Open("C:\testing.doc", True)
        Dim oBookmark As Object = oWordDoc.Bookmarks.Add("Bookmark")
        Dim oMissing As Object = System.Reflection.Missing.Value
        oWord.Visible = True

        For Each Files In ofd.FileNames

            'ICON LABEL CAN BE THE NAME OF THE FILE, 
            'ITS THE NAME DISPLAYED BESIDES THE EMBEDDED DOCUMENT
            Dim oIconLabel As Object = Path.GetFileName(Files)

            '//INCASE WE NEED THE EMBEDDED DOCUMENT TO BE DISPLAYED AS A SPECIFIC ICON,
            '//WE NEED TO SPECIFY THE LOCATION OF THE ICON FILE
            '//ELSE SET IT TO oMissing VALUE
            'Dim oIconFileName As Object = "C:\\Document and Settings\\IconFile.ico"

            '//THE LOCATION OF THE FILE
            Dim oFileDesignInfo As Object = Files

            '//OTHER VARIABLES
            Dim oClassType As Object = "Word.Document.8"
            Dim oTrue As Object = True
            Dim oFalse As Object = False
            'Dim oMissing As Object = System.Reflection.Missing.Value
            Dim oIconFileName As Object = oMissing

            '//METHOD TO EMBED THE DOCUMENT

            oWordDoc.Bookmarks.Item(oBookMark).Range.InlineShapes.AddOLEObject(oClassType, oFileDesignInfo, _
            oFalse, oTrue, oIconFileName, oMissing, oIconLabel, oMissing)

        Next
    End If

    Me.Close()
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21902315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档