Foxtable(狐表)用户栏目专家坐堂 → 一个Word模板 批量按照选定的行姓名列 生成不同姓名+文件名的多个Word文件 先完成对应Word文件二进制上传之后,在逐一全部打开这些Word文件。


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

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

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
一个Word模板 批量按照选定的行姓名列 生成不同姓名+文件名的多个Word文件 先完成对应Word文件二进制上传之后,在逐一全部打开这些Word文件。  发帖心情 Post By:2022/3/31 1:15:00 [只看该作者]

 一个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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112372 积分:572122 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/31 9:05:00 [只看该作者]

有什么问题?

 回到顶部