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