我用kendoUI制作了这张表,当用户将表导出到excel时,所有日期值都会更改,问题仅出现在chrome中,Firefox可以正常工作。
You can try the runnable on this link
var localData=[
{cliente:'COMERCIALIZACION',lote:1323,calidad:'PRIMERAS',fecha:'2017-07-07',sacos:10}, {cliente:'COMERCIALIZACION',lote:1324,calidad:'PRIMERAS',fecha:'2017-07-07',sacos:80},{cliente:'COMERCIALIZACION',lote:1325,calidad:'PRIMERAS',fecha:'2017-07-07',sacos:29}, {cliente:'COMERCIALIZACION',lote:1326,calidad:'PRIMERAS',fecha:'2017-07-07',sacos:5}];
答案 0 :(得分:2)
该问题很可能是由时区差异引起的。浏览器的时区会自动使用。
尝试将HH:mm
添加到网格日期格式中,并在Excel工作表中显示时间并检查时差。
修改:
如果您只对日期感兴趣,而对时间不感兴趣,则可以将日期的小时部分设置为12,这样即使相差几个小时,日期也将保持不变。
您可以使用以下代码执行此操作:
excelExport: (e) => {
console.log("Excel export", e.workbook);
e.workbook.sheets[0].rows.filter((row) => row.type === "data").forEach((row, index) => {
row.cells[2].value.setHours(12);
});
console.log("Excel export", e.workbook);
}
如果要使用更通用的方法,而不是带有日期的列索引,则可以这样做:
e.workbook.sheets[0].rows.filter((row) => row.type === "data").forEach((row, index) => {
row.cells.filter((cell) => cell.value instanceof Date).forEach((cell) => cell.value.setHours(12));
});