以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  一个Word模板 批量按照选定的行姓名列 生成不同姓名+文件名的多个Word文件 先完成对应Word文件二进制上传之后,在逐一全部打开这些Word文件。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176107)

--  作者:cnsjroom
--  发布时间:2022/3/31 1:15:00
--  一个Word模板 批量按照选定的行姓名列 生成不同姓名+文件名的多个Word文件 先完成对应Word文件二进制上传之后,在逐一全部打开这些Word文件。

 一个Word模板 批量按照选定的行姓名列 生成不同姓名+文件名的多个Word文件  先完成对应Word文件二进制上传之后,在逐一全部打开这些Word文件。

 

当前代码如下:

Dim rs As List(of Row) = Tables(e.Form.Name & "_table1").GetCheckedRows
Dim tm As String  = ProjectPath & "Attachments\\" & e.Form.Name & ".docx" \'指定模板文件
Dim Proc As New Process
If rs.Count > 0 Then \'如果存在符合条件的行
   
    For Each bb As Row In rs \'逐行生成报表
        Dim fl As String = ProjectPath & "Reports\\"& bb("姓名") & e.Form.Name & ".docx"
        Dim wrt As New WordReport(Tables(e.Form.Name & "_table1"),tm,fl) \'注意这里无需指定表名
        wrt.BuildOne(bb)
        ’wrt.Show() \'显示报表
        wrt.Quit() \'退出
        Dim r As Row = Tables(e.Form.Name & "_table5").AddNew()
        r("uuid")=bb("uuid")
        r("文件名") = FileSys.GetName(fl)
        r("文件类别") = "廉政档案综述归档"
        r("文件归类") = "廉政档案综述"
        r("文件时间") = Format(bb("更新时间"),"yyyy-MM-dd")
        r("身份证号")=bb("身份证号")
        r("所属室组")=bb("所属室组")
        r("单位名称")=bb("工作单位")
        r("人员名称")=bb("姓名")
        r("更新时间")=Date.now
        r("操作单位") = _usergroup
        Dim bb1 As String =FileSys.GetName(fl)
        Dim Values() As String
        Values = bb1.split(".")
        r("文件类型")=Values(1)
        r.Save \'必须先保存
        r.DataRow.SQLInsertFile("附件",fl) \'插入文件
        r.DataRow.SQLSetValue("CRC值", CRCCheckFile(fl)) \'保存crc检验值
        Dim ss1,ss2 As String
       
        If Values(1).Contains("doc") Or Values(1).Contains("docx") Then
            Dim app1 As New MSWord.Application
            try
                Dim fileName = fl
                Dim Doc = app1.Documents.Open(fileName)
                Dim count = doc.Characters.Count
                Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count)
                ss1=rng.Text
                ss2 = doc.ComputeStatistics(Microsoft.Office.Interop.Word.WdStatistic.wdStatisticPages, Nothing)
                vars("文件内容")=ss1
                vars("文件页数")=ss2
                app1.Visible = False
                doc.saved = True
            catch ex As exception
                msgbox(ex.message)
            finally
                app1.Quit
            End try
        End If
        r("文件内容")=ss1
        r("文件页数")=ss2
        r.Save

        Proc.File = fl
        Proc.Start()

    Next 
End If

[此贴子已经被作者于2022/3/31 1:58:15编辑过]

--  作者:有点蓝
--  发布时间:2022/3/31 9:05:00
--  
有什么问题?