前阵子跟server同学讨论一个Excel导出的需求,我说JS搞不定,需要server来做,被server同学强行打脸。
今天研究了下,尼玛,不光可以,还很强大了!
总结:经验是害人的,尤其是在发展迅速的前端圈儿,and,需要保持饥渴,保持对新技术的敏感度。
注:以下只探讨现代浏览器
1. 最简单的Excel导出
原理:js可以通过base64或者blob,把一个包含一个
var tableHtml='
only one |
var oa = document.createElement('a');
oa.href= 'data:application/vnd.ms-excel;base64,'+window.btoa(tableHtml);
oa.download= 'htmltable-base64.xls';//通过A标签 设置文件名
oa.click();
文件,在js中,除了可以是base64,也可以是一个blob。
- base64形式的文件描述,在js或者html中,就是一个很长的base4字符串
- blob形式的文件描述,在js或者html中,是一个URL形式的字符串,他指向的是浏览器内存中的一个文件片段,形如"blob:http://sheetjs.com/f999f57f-