本篇文章是在前人的基础上加以修改完成的,遇到的问题是使用网上案例后导出的excel文件日期格式直接变成2012/1/13格式样式,前端页面表格的格式为2012-01-13 08:24:23.333的数据,我也不知道为什么导出后直接变成这样?(可能大概是因为js-xlsx导出的时候默认是这样~没有去查看js-xlsx官方文档,有点小复杂!)
1.解决过程,仅提供一种思路,有些情况没试过,不知道可不可以采用这种方法(😑)
在网上看到有导出身份证号码变成科学计数的形式的解决案例,但试了一下我的情况不太符合。我的原始代码是采用这篇文章的传送门~,写的还是比较详细的。关键代码:
function btn_export() {
var table1 = document.querySelector("#table1");
var sheet = XLSX.utils.table_to_sheet(table1);//将一个table对象转换成一个sheet对象
openDownloadDialog(sheet2blob(sheet),'下载.xlsx');
}
使用的是table_to_sheet将table对象转换成一个sheet对象,我的解决思路:先将table转换成json数据格式后再进行转换成sheet对象,这样带着试试的态度我开始了我的学习之路~
我是利用后台传过来的json数据在前端绘制成table的,所以我直接对后台传过来的这个json数据进行操作(对于想直接对前端table操作可以参考网上的tabletojson插件,可以实现将table转换成json数据)。我的代码如下,只是将table_to_sheet换成json_to_sheet,其中data是json数据。
//实现导出的功能
$("#download").on('click',function () {
//将一个table对象转换成一个sheet对象
var sheet = XLSX.utils.json_to_sheet(data);
openDownloadDialog(sheet2blob(sheet),'date.xlsx');
});
2.最终效果(完成了日期原样显示):
3.特别感谢这篇文章的代码让我实现了前端table下载,
参考文章:使用js-xlsx纯前端导出excel。