导出日期更改kendoGrid

时间:2018-07-03 19:58:15

标签: jquery kendo-ui kendo-grid

我用kendoUI制作了这张表,当用户将表导出到excel时,所有日期值都会更改,问题仅出现在chrome中,Firefox可以正常工作。

issue

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}];

1 个答案:

答案 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));
});