-- 作者: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编辑过]
|