Foxtable(狐表)用户栏目专家坐堂 → webapp的excel导出问题


  共有3045人关注过本帖树形打印复制链接

主题:webapp的excel导出问题

帅哥哟,离线,有人找我吗?
wgqcool
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
webapp的excel导出问题  发帖心情 Post By:2018/11/1 12:34:00 [只看该作者]

请教老师,按照帮助文件的代码,用weui架构做了个订单系统,里面有根据订单明细生成EXCEL报表功能,用手机浏览器打开一切都正常,但是用HBuilder封装成一个webapp后,其他功能都正常,唯有这个生成EXCEL功能无效,直接下载一个order的EXCEL文件,好像无法调用order.js一样,打开这个excel看也只是一些网页头代码,是否和帮助文件说的后台生成报表有关?求指导!


图片点击可在新窗口打开查看此主题相关图片如下:tim截图20181031183104.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/1 13:09:00 [只看该作者]

下载excel文件的代码写成比如 e.writeFile("d:\test.xls") 看hbuilder那里能否正常下载

 

如果自己无法调试,单独做个实例发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2018/11/1 15:13:00 [只看该作者]

报告老师:用e.writeFile("d:\test.xls") ,app上面还是无法正常下载!
msgbox("333")
e.writeFile("d:\hel.xls")
弹窗是可以先出来!同样,浏览器下载Excel正常,就webapp上不行!
但是我把手机app下载的excel文件用电脑来打开,发现报错!


图片点击可在新窗口打开查看此主题相关图片如下:10.png
图片点击可在新窗口打开查看

(我电脑上是在这个路径 有css文件的!)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/1 15:46:00 [只看该作者]

我测试没问题。

 

httprequest那里直接下面代码,然后访问test.htm即可。

 

Select Case e.Path
    Case "test.htm",""
        e.writeFile("d:\test.xls")
End Select

 

不然你单独做个实例发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2018/11/1 17:04:00 [只看该作者]

老师,我刚做单独实例的时候发现个问题,因为我做了个e.Cookies校验,如果没有e.Cookies信息,就回进入登录页面,本意是超过30分钟就清空e.Cookies信息。但是为什么浏览器可以下载excel,应该是浏览器可以保持cookies信息,但是webapp不能保存cookies信息!但是如果是这个原因的话,按道理我其他页面也不能访问啊,没有cookies信息,就直接回到登录页面的啊!~不明白了!上传实例,请老师指点!是不是逻辑错误了!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/1 20:15:00 [只看该作者]

这个是hbuilder的bug,下载的时候访问服务器的时候,没有带上cookie的信息。

 

1、你升级到最新hbuilder,看其是否修复了此bug。

 

2、换一种思路(安全性可能有所降低),你把userid的值放在文件后面作为参数,如果有userid的参数,你都通过一下呗。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2018/11/2 12:37:00 [只看该作者]

图片点击可在新窗口打开查看收到!~修改了cookie校检的逻辑,可以正常下载了!谢谢老师!还有个问题,我用e.writefile或者e.writebook在webapp上都能下载文件,但是文件名无法修改为生成的文件名(全都是order.xls),请问能否修改成希望的文件名(比如用传递过来的oid命名)?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/2 16:07:00 [只看该作者]

参考

 

        Dim fs As System.IO.FileStream = Nothing
        fs = System.IO.File.Open("d:\test.txt", System.IO.FileMode.Open)
        Dim btFile As Byte() = New Byte(fs.Length - 1) {}
        fs.Read(btFile, 0, Convert.ToInt32(fs.Length))
        fs.Close()
       
        e.Response.Headers("Content-Disposition") = "attachment;filename=test.txt"
        '输出文件格式
        e.Response.ContentType = "application/octet-stream"
        
        Dim output = e.response.OutputStream
        output.Write(btFile,0,btFile.Length)
        output.Close()


 回到顶部