Blob把html导出为excel文件
创始人
2024-04-03 04:44:17

1、问题描述

        今天碰到了一个需求,是要求把如下asp页面上显示的报表导出成为excel文件。

 原本我是打算直接在asp页面输出成csv文件的。

 但是这样子不行,因为报表里面有一对多的关系,一行对应多行这种,通过respose.write xxx输出成csv文件很难实现。

我大概试了一下,导出的csv文件非常乱,行与行之间,原来的一对多关系全没了。

2、产生原因

        csv文件其实是用逗号分割每个元素的,因此如果用excel打开就会形成单元格表格这种的展示效果。但是因为我要导出的报表里面有一对多的关系,但csv无法去进行单元格合并操作。

3、解决方法

        我问了同事,才知道可以通过使用Blob直接把html导出成为一个excel。

Blob - Web API 接口参考 | MDN (mozilla.org)

一个测试页面

testxlsx.asp

<%Response.ContentType="application/vnd.ms-excel"Response.Charset="gb2312"Response.AddHeader "Content-Disposition","attachment;filename=test.xls"
%>


......
省略其余的html代码

完整的导出功能代码

POPOPNPN品牌产品描述采购数量箱号入库出库
......省略一些报表的html代码

导出的excel里面的显示效果 

4、总结

        今天这个问题让我想起了我去年在上家公司写vue的时候,也是导出excel文件的问题。Vue中实现自定义excel下载_金斗潼关的博客-CSDN博客

当时的处理方法是通过在后端查出数据然后返回一个list到前端,由前端合成一个excel导出。不管是后端合成excel还是前端合成excel,相应的处理代码都比较长,比较复杂。今天接触了Blob这种操作文件对象的方式,感觉Blob简直就是文件导出的神器!你不用考虑怎么去合成一个excel,直接传给它html代码,它就能根据html的样式导出和html相同显示效果的文件。其实Blob就相当于你复制了网页上的东西,然后将其粘贴到excel中去。

不过到底用不用Blog还是用其他的文件处理工具包还是要根据具体场景,具体问题具体分析的!

关于Blob还有很多强大的功能,因为暂时没用到所以我就不深究了,总之把它当成一个工具吧,需要的时候再进一步学习。

Blob - Web API 接口参考 | MDN (mozilla.org) 这个是Blob文档,不过感觉写的有点简略了。

5、参考资料

【使用Blob导出json数据】_xuehao1997的博客-CSDN博客

.net使用Blob导出数据为Excel,纯前端操作_Boogaloo-Jer的博客-CSDN博客

Blob - Web API 接口参考 | MDN (mozilla.org)

你不知道的 Blob - 知乎 

为excel文档设置mime类型 | 码农家园 (codenong.com) 

相关内容

热门资讯

财联社1月8日早间新闻精选 转自:财联社【财联社1月8日早间新闻精选】 1、工业和信息化部等八部门印发《“人工智能+制造”专项行...
国家医保局:2028年前全面推... 转自:北京日报客户端今后看病缴费将不用再为排长队发愁了。1月8日,国家医保局发布通知,将在全国范围内...
新闻分析丨格陵兰岛为何让美国如... 来源:新华社新华社北京1月7日电 新闻分析|格陵兰岛为何让美国如此垂涎新华社记者林昊美军强行控制委内...
数字人主播纳入监管 “会员降权...   市场监管总局和国家网信办近日联合发布《网络交易平台规则监督管理办法》《直播电商监督管理办法》。这...
突破困境 “丫邦”组合更加坚定 北京时间1月7日,马来西亚羽毛球公开赛混双首轮,2号种子蒋振邦/魏雅欣2比0击败印度组合卡普尔/加德...
POPOPNPN品牌产品描述