以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何批量导出word报表,不用预览也不用打印?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74379)

--  作者:ehomecd
--  发布时间:2015/9/9 17:14:00
--  如何批量导出word报表,不用预览也不用打印?
这个是大红袍老师帮忙改的代码:请问如何批量导出word报表,不用预览也不用打印?

Dim tm As String  = ProjectPath & "Attachments\\人员简历表.doc" \'指定模板文件
With Tables("员工资料")
    If .TopPosition > -1 Then \'如果选定区域包括数据行
        For i As Integer = .TopPosition To .BottomPosition
            Dim r As Row = .Rows(i)
            Dim fileName As String = ProjectPath & "Reports\\"& r("姓名") &".doc" \'指定目标文件
            Dim wrt As New WordReport(Tables("员工资料"),tm,fileName) \'定义一个WordReport
            wrt.BuildOne(r)
            wrt.Print
            wrt.quit
        Next
    End If
End With

--  作者:大红袍
--  发布时间:2015/9/9 17:38:00
--  

去掉打印的代码就行了啊。

 

Dim tm As String  = ProjectPath & "Attachments\\人员简历表.doc" \'指定模板文件
With Tables("员工资料")
    If .TopPosition > -1 Then \'如果选定区域包括数据行
        For i As Integer = .TopPosition To .BottomPosition
            Dim r As Row = .Rows(i)
            Dim fileName As String = ProjectPath & "Reports\\"& r("姓名") &".doc" \'指定目标文件
            Dim wrt As New WordReport(Tables("员工资料"),tm,fileName) \'定义一个WordReport
            wrt.BuildOne(r)
            wrt.quit
        Next
    End If
End With


--  作者:ehomecd
--  发布时间:2015/9/9 18:06:00
--  
我修改了代码,提示错误

Dim tm As String  = ProjectPath & "Attachments\\人员简历表.doc" \'指定模板文件
Dim Sum As Integer

With Tables("员工资料")
    If .TopPosition > -1 Then \'如果选定区域包括数据行
        For i As Integer = .TopPosition To .BottomPosition
            Dim r As Row = .Rows(i)
            Dim fileName As String = ProjectPath & "Reports\\"& r("姓名") &".doc" \'指定目标文件
            Dim wrt As New WordReport(Tables("员工资料"),tm,fileName) \'定义一个WordReport
            wrt.BuildOne(r)
            wrt.quit
            wrt.Show()
            Sum = Sum + i
        Next
    End If
End With

msgbox("本次共导出"& sum &"份个人信息到:"& ProjectPath &"Reports\\")


图片点击可在新窗口打开查看此主题相关图片如下:批量导出doc错误.png
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2015/9/9 18:16:00
--  

Dim tm As String  = ProjectPath & "Attachments\\人员简历表.doc" \'指定模板文件
Dim Sum As Integer


With Tables("员工资料")
    If .TopPosition > -1 Then \'如果选定区域包括数据行
        For i As Integer = .TopPosition To .BottomPosition
            Dim r As Row = .Rows(i)
            Dim fileName As String = ProjectPath & "Reports\\"& r("姓名") &".doc" \'指定目标文件
            Dim wrt As New WordReport(Tables("员工资料"),tm,fileName) \'定义一个WordReport
            wrt.BuildOne(r)
            wrt.quit
            Sum = Sum + i
        Next
    End If
End With


msgbox("本次共导出"& sum &"份个人信息到:"& ProjectPath &"Reports\\")


--  作者:ehomecd
--  发布时间:2015/9/10 8:40:00
--  
谢谢,还有一个问题,我选择了3个人,也导出了3个人的信息表,但统计的时候提示导出了6份档案。



图片点击可在新窗口打开查看此主题相关图片如下:word导出2.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:word导出3.png
图片点击可在新窗口打开查看


--  作者:ehomecd
--  发布时间:2015/9/10 8:44:00
--  
是不是应该写成 sum = i +1
[此贴子已经被作者于2015/9/10 8:45:00编辑过]

--  作者:ehomecd
--  发布时间:2015/9/10 8:49:00
--  
sum = i + 1 也不行

图片点击可在新窗口打开查看此主题相关图片如下:word导出4.png
图片点击可在新窗口打开查看



--  作者:大红袍
--  发布时间:2015/9/10 9:06:00
--  
Sum = Sum + 1
--  作者:Hyphen
--  发布时间:2015/9/10 9:06:00
--  
 Sum = Sum + 1

--  作者:521lp
--  发布时间:2016/11/7 16:22:00
--  
mark