基于Go的WebAssembly实现excel导出和读取

        一个后台应用往往在不同表单都要实现数据导出或导入,一般的做法封装一个通用方法或者工具包给统一调用,从而避免重复的开发。但这有以下两个缺点。

一、不能跨语言;

二、可能不兼容版本低的项目。

开发环境

-------------------------------------------------------------------

Go 1.15版本或以上

excelize v2.4.0

        使用WebAssembly(简称wasm)技术就可以规避上述两个问题,现在可以编译出wasm文件有C、C++、Rust和Go,在这选择Go,因为Go下有一个很好用,文档很详细的第三方库excelize。

       实现excel导出有两核心要点。

一、对excelize进行二次封装再编译成wasm文件;

二、JS实现文件下载,由客户端(浏览器)生成excel文件,再由客户端触发下载事件,此过程不和服务器不产生任何交互。

 

        实现excel读取要简单很多在些就不赘述了。

        

        文章底下附上工具的源码和示例,为了避免前端开发人员的使用的不友好只对excelize简单的封装,所以不能实现复杂的excel表格的生成。

PS:示例要放在web容器访问(如:nginx),不然因为浏览的安全机制导致wasm文件不可用。

        示例里的webtool.js实现了输出流的创建、下载事件的触发和读取excel文件转base64。

源码和示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值