-
需求, 下载统计数据, 导出word/excel (含统计图) (已完成html统计展示)
-
怎么办呢? 思路.
思路一: 前端 (无法完全满足图片需求, 如果有图片,不建议这么做)
前端js: 如果需要得到的导出文档的内容, 和你已有的html展示是雷同的, 可以利用html2word, 或html2excel(引用插件jquery, FileSave.js, jquery.wordexport.js) 直接转成可识别的doc或xls文档. 这些js也可以自己写, 主要思路是, 按需获取需要导出的dom内容, 然后拼接固定的头部尾部代码, 让word软件可识别, 然后保存blob.
用js来实现的问题在哪里呢?
first, 实际上, js生成的这个文件, 是在原汁原味的html上套了一层doc的壳(这一点在word点击另存为的时候可以看到, 当前文件的是一个*mhtml), 这是word软件可以解析编辑而已. 有些html的样式或者字体可能无法显示, 或者在当前的编辑模式下, word无法显示
second,要命的是什么呢, 图片无法很好的显示!
如果html的img src是网址, word还是会发请求给服务器, 请求图片, 所以服务器的图片必须可以跨域访问 (!!!)
如果是canvas或者base64, word必须进入编辑模式才可以看到, wps是直接看不到的(可能某些版本表现更差)
思路二:后端
我用的java, 图片的可以用jfreechart等插件生成
(其实丑的要死, 不如前端从echarts拿图片传给后端的好看)
注意一, jfreeCharts 生成的图, 需要用到字体. linux上很可能没有匹配的字体文件, 所以字体的ttf文件需要自己放在项目里, 自己用方法生成font (字体种类, 字体大小, 字体样式)
注意二, poi 的hssf和xssf是不兼容的, 也就是用jfreechart给excel插图的时候, 一定要看之前的excel是2003xls还是2007xlxs, 这是不兼容的!!!(而且poi还不如用阿里的easyexcel)
来源:CSDN
作者:stevenxyy
链接:https://blog.csdn.net/stevenxyy/article/details/103743443