Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
353 views
in Technique[技术] by (71.8m points)

前端如何生成导出一个excel(含合并和图片)

遇到这样需求,需要将后端给的数据,导出为excel,里面有垂直合并还有图片。

看到前端实现的一些库,要么格式支持不理想,要么付费(spreadJS,而且成本大),要么不支持合并和图片。

想搭建一个node服务解决,找到的一些库如 excel-export, node-xlsx 也不太理想

我想问一下这中需求有理想的解决方案吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

首先感谢 SlimBearwintc 的回答。至于sheetJS/js-xlsx,确实前端也能实现合并和修改样式,没做深究。这是非常cool的一个库,关于他的使用,我推荐这两篇文章

js工具类库jsUtils使用示例
前端导出可修改样式的excel

最终是后端给文件满足了实现了这个需求。这种情况也建议后端实现。前端代码大概如下:

// 后端链接地址,suffix为查询参数
const url = _this.exportUrl+suffix;
const aEle = document.createElement("a");
aEle.href = url;
aEle.click();// 注意是get请求

目前还有个问题,就是链接地址(href)如果没找到,会返回提示信息,这时候就会跳转,这个解决了再来更答案


更新
参考:点击下载不跳转空白页
利用iframe做中间件

在页面添加:

<iframe name="hrefTemplate" style="display:?none"></iframe>

方法中添加

const aEle = document.createElement("a");
aEle.target = "hrefTemplate"// 添加这一行

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...