使用XLSX导出日期时,若将data中的数据直接装为需要的String,导出没问题。但是会在重新导入时识别不到。所以需要使用XLSX内置的日期格式化方式。
需要先但需创建sheet,对sheet中的列进行操作。打印创建的sheet对象,可以看到日期格式是在z
字段中:
所以可以将日期即A列的对象的z
字段改为需要的日期格式,如yyyy-mm
:
export function exportExcelFile(array, fileName = 'data', sheetName = '表1') {
//将数据装为sheet格式
const jsonWorkSheet = XLSX.utils.json_to_sheet(array);
// 设置第一列数据宽度
jsonWorkSheet['!cols'] = [{ wch: 15 }];
//获取到各个单元格的序号,如A1,B2。序号就是key
let keys = Object.keys(jsonWorkSheet);
// 设置第一列日期的导出格式
for (let key of keys) {
//导出的日期为第一列,A;不同的列数判断不同的英文序号
if (key.indexOf('A') > -1) {
//修改z字段表示的日期格式
jsonWorkSheet[key].z = 'yyyy-mm';
}
}
// console.log('jsonSheet', jsonWorkSheet);
let workBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workBook, jsonWorkSheet, sheetName);
return XLSX.writeFile(workBook, `${fileName}.xlsx`);
}
然后将sheet放入创建的workBook中,进行导出。