把文件放到项目的Attachments目录里,我这样测试没有问题
If e.Path.StartsWith("Reports\")
e.Resp
Select Case e.Path
Case "Reports\table1.htm"
Dim app As New MSExcel.Application
Dim wb As MSExcel.Workbook = app.WorkBooks.Open(ProjectPath & "Attachments\j48ck01.xlsx")
'VBA代码
e.WriteExcelAsHTML(wb)
Case Else
e.AsReportServer("Reports\")
End Select
End If
AsReportServer看起来没有意义,实际上你删除这行代码的话,客户端不会显示任何内容,这是因为Excel报表转换成网页之后,并非只有一个单一的网页文件,还会生成一系列的辅助文件,需要通过AsReportServer方法将这些辅助文件发送给客户端。
我们也无需考虑多线程以及临时文件的处理,Foxtable会自动完成这些工作。
需要注意的是: AsReportServer的参数就是约定的报表目录,必须和第一行指定的报表目录相同,报表目录也必须是专用的,不能再用于访问其他网页。