使用js-xlsx插件和FileSaver插件可以很容易的实现前端导出表格到Excel功能

GitHub地址

https://github.com/SheetJS/js-xlsx

https://github.com/eligrey/FileSaver.js

 

开发中遇见一个问题,使用js-xlsx插件将table转成workbook时,会默认把内容是数字的字符串当做数字处理

比如 一个td的值是00001,导出Excel后会变成1,js-xlsx插件会把这个字符串转成数字进行输出。

查看了js-xlsx插件的文档后发现可以通过raw:true属性控制把内容当做字符串进行输出,这样输出的结果就是00001了。

let table = document.querySelector("#mytable");
let wb = XLSX.utils.table_to_book(table,{raw:true});
/* get binary string as output */

let wbout = XLSX.write(wb, {
     bookType: "xlsx",
     bookSST: true,
     type: "array",
});
try {
   FileSaver.saveAs(
        new Blob([wbout], { type: "application/octet-stream" }),
        excName+".xlsx"
        );
} catch (e) {
   if (typeof console !== "undefined") console.log(e, wbout);
}
return wbout;

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐