当我使用ag-grid自己的exportDataAsExcel()
将表格导出为Excel时,生成的Excel包含日期为常规数据类型而不是日期 。
[]
我用过这个:
exportDataAsExcel({
processCellCallback: ({col, val}) => {( /*date value formatting here*/ )}
})
使用正确的日期格式Date
格式化string
,(DD/MM/YYYY)
,但我无法将excel正确识别为日期,而不是的常规
这可以通过其网站上的excel导出示例重现:https://www.ag-grid.com/javascript-grid-excel/?framework=all#gsc.tab=0
答案 0 :(得分:0)
你需要做三件事:
实例化Ag-Grid时,需要添加
var excelStyles = [
{
id: "ExcelDateTime",
dataType: "dateTime",
numberFormat: { format: "yyyy-mm-dd hh:mm:ss;;;" }
},
{
id: "ExcelDate",
dataType: "dateTime",
numberFormat: { format: "yyyy-mm-dd;;;" }
}
];
...
<AgGridReact
... //such as rowData={rowData}
excelStyles={excelStyles}
...
/>;
对于日期列:
colDef.cellClass = "ExcelDateTime";
或
colDef.cellClass = "ExcelDate";
视情况而定,
processCellCallback
中,将日期格式设置为ISO日期:"yyyy-mm-ddTHH:MM:ss"
答案 1 :(得分:0)
我也使用此代码在excell中应用了值格式化程序:
this.gridOptions.api.exportDataAsExcel({
processCellCallback: (params) => {
if (params.column.getColDef().valueFormatter) {
return params.column.getColDef().valueFormatter(params as any);
}
return params.value;
},
});
答案 2 :(得分:0)
假设您控制着服务器端应用程序,我发现对于任何非平凡的导出/格式化,从服务器端进行导出都比较容易。
通过在服务器上进行操作,您可以完全控制数据和Excel文件的生成,而不必依赖于Ag-Grid的实现限制。