参考了帮助文件,用下面的代码实现了(是最后IF语句实现的)。如果有狐友需要,可以参考一下。
'本函数用于单表按设定的模板导出Excel报表
'by Hank 2018-5-18
'使用方法如下:
'Dim sql As String '导出表的SQL语句
'Dim excel_template_fileName As String '模板文件名称
'Dim excel_export_fileName As String '输出Excel文件的名称, 路径在MyDocuments\Report'
'Dim sheetName As String '输出Sheet名称
'Functions.Execute("ExcelReportSingleTable", sql, excel_template_fileName, excel_export_fileName, sheetName)
'
Dim sql As String = Args(0) '导出表的SQL语句
Dim excel_template_fileName As String = Args(1) '模板文件名称
Dim excel_export_fileName As String = Args(2) '输出Excel文件的名称, 路径在MyDocuments\Report
Dim sheetName As String = Args(3) '输出Sheet名称
Dim Book As New XLS.Book(ProjectPath & "Attachments\" + excel_template_fileName)
Dim fl As String = SpecialFolder.MyDocuments + "\Reports\" + excel_export_fileName
Vars("fl") = fl
If DataTables.Contains("h") Then DataTables.Unload("h")
book.AddDataTable("h","dbMain",sql)
Book.Build()
Dim Sheet As XLS.Sheet = Book.Sheets(0)
With Sheet.PrintSetting
'页眉左边为日期,中间为时间,右边为表名
.Header = "&L&""Arial""&8 &D &T &C&""Arial""&8 &Z &F"
'在页脚右边打印页号和总页数
.Footer = "&C&""Arial""&8 第&P页,总&N页"
End With
Sheet(Sheet.Rows.Count, 0).Value = "制单人:" & _userName
If DataTables.Contains("h") Then DataTables.Unload("h")
If sheetName Is Nothing OrElse sheetName.Trim.Length = 0 Then sheetName = "Sheet1"
sheet.Name = sheetName
If FileSys.FileExists(fl) = False Then
Book.Save(fl)
Else
Dim Book1 As new XLS.Book(fl)
Book.Sheets.Remove(sheet)
Book1.Sheets.Add(sheet)
Book1.Save(fl)
End If