剑道网格导出日期格式不正确
Posted
技术标签:
【中文标题】剑道网格导出日期格式不正确【英文标题】:Kendo grid export date format incorrect 【发布时间】:2018-01-06 11:35:22 【问题描述】:当我尝试从剑道网格导出 excel 时,日期格式不正确。
这个 Warranty_Start_Date 在我的表格列中可以为空,下面是网格列的模板。
customColumns.push(
title: customHeaders[i],
field: headers[i],
width: 150,
template:
"#= " + headers[i] + " ? kendo.toString(kendo.parseDate(" + headers[i] + "), 'dd/MM/yyyy') : 'N/A' #",
);
对于网格,我启用了 excel 导出功能并尝试自定义某些列的格式:
var grid = $("#gridHardwares").kendoGrid(
excel:
fileName: "excelfile.xlsx",
allPages: true,
filterable:true
,
excelExport: function(e)
var sheet = e.workbook.sheets[0];
for (var rowIndex = 1; rowIndex < sheet.rows.length; rowIndex++)
var row = sheet.rows[rowIndex];
for (var cellIndex = 0; cellIndex < row.cells.length; cellIndex ++)
if (cellIndex >= 9 && cellIndex <= 11)
row.cells[cellIndex].format = "yy-MM-dd hh:mm:ss";
if (cellIndex >= 13)
row.cells[cellIndex].format = "0.00";
,
我不明白,因为这两位小数的格式可以正常工作,但日期格式却不行。 excel中的导出结果: date is not in readable format
我也尝试了这种保留列模板的方法,但我遇到了“替换未定义”的错误
excelExport: function(e)
var sheet = e.workbook.sheets[0];
var template = kendo.template(this.columns[13].template);
for (var rowIndex = 1; rowIndex < sheet.rows.length; rowIndex++)
var row = sheet.rows[rowIndex];
for (var cellIndex = 0; cellIndex < row.cells.length; cellIndex ++)
if (cellIndex >= 9 && cellIndex <= 11)
var dataItem =
Warranty_Start_Date: row.cells[13].value
;
row.cells[13].value = template(dataItem);
row.cells[cellIndex].format = "yy-MM-dd hh:mm:ss";
if (cellIndex >= 13)
row.cells[cellIndex].format = "0.00";
,
error occur when export
也许这个模板方法不适合我的情况,我不知道。但是还有其他方法可以将此日期字符串 /Date(1382544000000)/ 转换为正确的“dd-MM-yyyy”格式吗?非常需要帮助:(
【问题讨论】:
与您的问题无关,但“yy-MM-dd hh:mm:ss”会产生一个不明确的时间,如没有上午/下午的 12 小时。请考虑使用“yy-MM-dd HH:mm:ss”。 ;-) 【参考方案1】:好的,解决方案就是将此字段类型设置为“日期”。疯狂的。
【讨论】:
以上是关于剑道网格导出日期格式不正确的主要内容,如果未能解决你的问题,请参考以下文章