Foxtable(狐表)用户栏目专家坐堂 → [求助]合并Word


  共有2054人关注过本帖树形打印复制链接

主题:[求助]合并Word

帅哥哟,离线,有人找我吗?
有点蓝
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/21 22:21:00 [只看该作者]

我测试没有问题

Dim wapp1 As New MSWord.Application
Dim wapp2 As New MSWord.Application
Dim wapp3 As New MSExcel.Application
try
    '新建一个Word接收文档
    Dim missing = System.Reflection.Missing.Value
    Dim doc1 = wapp1.Documents.Add(missing, missing, missing, missing)
    
    Dim str() As String = {"12.docx","34.docx","123.xlsx"}
    Dim bb As Integer
    For Each s As String In str
        wapp1.ActiveWindow.Selection.WholeStory
        wapp1.ActiveWindow.Selection.MoveRight(Unit:=1, Count:=1)
        
        '在文件后插入分页符
        If bb > 0 Then
            Dim pBreak = MSWord.WdBreakType.wdSectionBreakNextPage
            wapp1.ActiveWindow.Selection.InsertBreak(pBreak)
        End If
        
        If s.EndsWith(".doc") OrElse s.EndsWith(".docx") Then    '如果是doc文件
            Dim doc2 = wapp2.Documents.Open(ProjectPath & s)
            wapp2.ActiveWindow.Selection.WholeStory
            wapp2.ActiveWindow.Selection.copy
            wapp1.ActiveWindow.Selection.paste
        ElseIf s.EndsWith(".xls") OrElse s.EndsWith( ".xlsx") Then    '如果是xls文件
            Dim Wb As MSExcel.WorkBook = wapp3 .WorkBooks.Open(ProjectPath & s)
            Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) '指定要复制的工作表
            Ws.UsedRange.Copy
            wapp1.ActiveWindow.Selection.TypeParagraph
            wapp1.ActiveWindow.Selection.paste
        End If
    bb+= 1
    Next
    
    Dim nm As String = Format(Date.Now, "yyyyMMddhhmmss")
    doc1.SaveAs(ProjectPath & "Word合并\" & nm & ".docx")
    wapp1.Visible = True
catch ex As exception
    msgbox(ex.message)
finally
    wapp2.Quit
    wapp3.Quit
End try

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/10/22 12:46:00 [只看该作者]

谢谢蓝老师!

提示窗口应该是office安装的问题,换一台电脑运行没有问题。


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/10/27 17:06:00 [只看该作者]

蓝老师好!
我想把多次添加的文件路径放在二级节点,添加一个根目录名“文件目录:”,结果每次添加都会重新出来一次相同的根目录,应该怎样修改代码?
谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看

'''
Dim count As Integer = 0   '设置计数器
Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "Word-execl文件|*.doc;*.docx;*.xls;*.xlsx"
dlg.Title = "添加文档"
dlg.InitialDirectory = ProjectPath & "Attachments\文档"
If dlg.ShowDialog = DialogResult.OK Then
    Dim tr As WinForm.TreeView
    Dim nd As WinForm.TreeNode
    tr = e.Form.Controls("TreeView1")
    If nd IsNot Nothing Then    ’如果添加过文件
        nd = nd.Nodes.Add(dlg.FileName)     ’直接插入子节点
    Else
        For Each fl As String In dlg.FileNames     ’如果是第一次添加
            nd = Tr.Nodes.Add("文件目录:")        ’先添加根目录
            nd.Nodes.Add(fl)        '文件路径添加至子节点
            count += 1
        Next
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/27 20:48:00 [只看该作者]

If dlg.ShowDialog = DialogResult.OK Then
    Dim tr As WinForm.TreeView
    Dim nd As WinForm.TreeNode
    tr = e.Form.Controls("TreeView1")
    If tr.nodes.count = 0 Then    ’如果添加过文件
     nd = Tr.Nodes.Add("文件目录:")
    Else
     nd = Tr.Nodes(0)
    End If
        For Each fl As String In dlg.FileNames     ’如果是第一次添加
            nd.Nodes.Add(fl)        '文件路径添加至子节点
            count += 1
        Next
End If

 回到顶部
总数 14 上一页 1 2