需求:
使用插件ejsexcel导出表格,需要将后台返回的base64格式的图片导出到excel中。
解决:
1、看了一下ejsExcel在github上的README.md,没有发现图片的相关说明。
2、下载了整个项目运行发现例子里面确实有导出图片,但是是根据图片相对路径导出的,并不能解决我的问题。
3、抱着尝试的心态,根据github上的联系方式联系上了开发者,非常感谢ejsExcel开发者sail耐心指导。
4、模板excel中的图片标签
<%img({imgPh:data[0][0].img,cNvPrName:"图片名称(可不填)",cNvPrDescr:"图片描述(可填)",cellNumAdd:10,rowNumAdd:10})%>
imgPh可以是路径也可以是buffer对象
5、研究将base64编码转为buffer对象
6、废弃方法Node.js v6
const buf=new Buffer(str,'base64')
其中str为图片的base64编码后的字符串
第二个参数是str的编码格式
还可以将以下编码格式的数据转为buffer
但是 new Buffer()分配的内存没有初始化,有可能包含敏感数据
Node8.00新的方式
const buf=Buffer.from(str,'base64')
参数解释同上
Node.js还是支持以下字符编码