以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  使用VBA生成网页 e.WriteExcelAsHTML(wb)失效  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=150381)

--  作者:hongsejiyi
--  发布时间:2020/5/28 13:08:00
--  使用VBA生成网页 e.WriteExcelAsHTML(wb)失效
请问教师:使用这个正常 e.WriteExcelAsPDF(wb),但用        e.WriteExcelAsHTML(wb),就失效。
代码如下:


图片点击可在新窗口打开查看此主题相关图片如下:2020-05-28_130433.png
图片点击可在新窗口打开查看



[此贴子已经被作者于2020/5/28 20:27:28编辑过]

--  作者:有点蓝
--  发布时间:2020/5/28 13:51:00
--  
Excel文件发上来测试一下
--  作者:hongsejiyi
--  发布时间:2020/5/28 19:38:00
--  
以下是Excel文件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:j48ck01.xlsx



--  作者:有点蓝
--  发布时间:2020/5/29 8:46:00
--  
把文件放到项目的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的参数就是约定的报表目录,必须和第一行指定的报表目录相同,报表目录也必须是专用的,不能再用于访问其他网页。


--  作者:hongsejiyi
--  发布时间:2020/5/30 8:05:00
--  
好的老师,我回去试一下!
[此贴子已经被作者于2020/5/30 8:06:40编辑过]

--  作者:hongsejiyi
--  发布时间:2020/5/30 22:14:00
--  
可以了,谢谢老师指点!