Foxtable(狐表)用户栏目专家坐堂 → WORD报表插入表格和生成的图表吗?


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

主题:WORD报表插入表格和生成的图表吗?

帅哥哟,离线,有人找我吗?
一笑
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
WORD报表插入表格和生成的图表吗?  发帖心情 Post By:2015/10/20 11:36:00 [显示全部帖子]

请问能用代码在WORD报表插入表格和已生成的图表吗(EXCEL中可以)?谢谢

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/10/20 11:55:00 [显示全部帖子]

图表可以用ReplaceWithImage插入。但想插入某一个表(table),该如何?谢谢

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/10/21 9:02:00 [显示全部帖子]

1. 能够控制插入WORD文档中的位置吗?
2. WORD报表模板中能对插入表格的位置进行设置吗?谢谢

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/10/29 11:04:00 [显示全部帖子]

麻烦详细点,比如WORD报表模板叫“月报”,在文件目录中attachment文件夹中, ProjectPath & "\Attachments\月报";生成报告在ProjectPath & "\Reports\月报"
Dim app As New MSWord.Application
try
    Dim doc = app.Documents.Open(ProjectPath & "\Reports\月报")
    If app.ActiveWindow.Selection.Find.Execute("test") = False Then
        '插入表格,方法1或2
    End If    
    app.Visible = True
catch ex As exception
    msgbox(ex.message)
    app.Quit
finally
End try
是这样吗?表格在报表中有位置要求的,代码如何控制的?谢谢

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/10/29 11:26:00 [显示全部帖子]

等于是在WORD文档中,写一个“test”,代码就会在这次插入表格?

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/10/29 14:01:00 [显示全部帖子]

整合了代码:

Dim app As New MSWord.Application
try
    Dim doc = app.Documents.Open(ProjectPath & "\Reports\公司月报.docx")
    If app.ActiveWindow.Selection.Find.Execute("test") = False Then
        '插入表格,方法1或2
        try
            'Dim doc = app.Documents.add
            Dim dt As DataTable = DataTables("药箱")
            doc.Tables.Add(Range:=app.Selection.Range,NumRows:=1, NumColumns:= dt.DataCols.Count)
            With app.Selection.Tables(1)
                .ApplyStyleHeadingRows = True
                .ApplyStyleLastRow = True
                .ApplyStyleFirstColumn = True
                .ApplyStyleLastColumn = True
            End With
            For Each dc As DataCol In dt.DataCols
                app.Selection.TypeText(Text:=dc.Name)
                app.Selection.MoveRight(Unit:=12)
            Next
            For Each dr As DataRow In dt.DataRows
                For Each dc As DataCol In dt.DataCols
                    app.Selection.TypeText(Text:=dr(dc.Name))
                    app.Selection.MoveRight(Unit:=12)
                Next
            Next
            app.Visible = True
        catch ex As exception
            msgbox(ex.message)
            app.Quit
        finally
            
        End try
        
    End If
    app.Visible = True
catch ex As exception
    msgbox(ex.message)
    app.Quit
finally
End try

1. 不起作用,无法导入“公司月报”,不知道哪儿不对,
2. 单独测试导出表格代码,发现在WORD中没有表格线,求解,谢谢


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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/10/29 14:44:00 [显示全部帖子]

1. 问题解决;
2. 但插入表格没有表格线,求解,谢谢

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/10/31 15:28:00 [显示全部帖子]

第二种方法,拷贝、粘贴指定EXCEL表格,报错说WORD文档被锁定,也没有表格线,求解

图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图15年10月31日1523_1.jpg
图片点击可在新窗口打开查看


Dim app As New MSWord.Application
try
    Dim doc = app.Documents.Open(ProjectPath & "\Reports\公司月报.docx")
    If app.ActiveWindow.Selection.Find.Execute("test")  Then
        '插入表格,方法1或2
        Dim wapp As New MSWord.Application
        Dim eApp As New MSExcel.Application
        try
            Dim Wb As MSExcel.WorkBook = eApp.WorkBooks.Open(fl)
            Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) '指定要复制的工作表
            Ws.UsedRange.Copy
            
            Dim fileName = fl
            Dim doc1 = wapp.Documents.Open(fileName)
            wapp.ActiveWindow.Selection.WholeStory
            wapp.ActiveWindow.Selection.MoveRight(Unit:=1, Count:=1)
            wapp.ActiveWindow.Selection.TypeParagraph
            wapp.ActiveWindow.Selection.paste
            wapp.Visible = True
        catch ex As exception
            msgbox(ex.message)
            wapp.Quit
        finally
            eapp.quit
        End try
    End If
finally
End try

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/11/1 10:12:00 [显示全部帖子]

好像不管用。
单独测试“方法二:粘贴excel的表格进去”,也会出现上述问题,求解

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/11/3 11:21:00 [显示全部帖子]

测试方法二:粘贴EXCEL,加入了中断进程,仍然报错,请测试,谢谢

Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("WinWord")
For Each p As System.Diagnostics.Process In ps
    p.kill
Next 
Dim wapp As New MSWord.Application
Dim eApp As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = eApp.WorkBooks.Open(ProjectPath & "事件.xls")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) '指定要复制的工作表
    Ws.UsedRange.Copy
   
    Dim fileName = ProjectPath & "事件.xls"
    Dim doc = wapp.Documents.Open(fileName)
    wapp.ActiveWindow.Selection.WholeStory
    wapp.ActiveWindow.Selection.MoveRight(Unit:=1, Count:=1)
    wapp.ActiveWindow.Selection.TypeParagraph
    wapp.ActiveWindow.Selection.paste
    wapp.Visible = True
catch ex As exception
    msgbox(ex.message)
    wapp.Quit
finally
    eapp.quit
End try

 回到顶部
总数 20 1 2 下一页