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

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

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

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

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

阅读 5.8k
3 个回答

首先感谢 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"// 添加这一行

没有。就一个excel软件本身的功能都比浏览器复杂太多,想通过浏览器的api来实现excel的导出预览,可谓异常困难。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题