Ag-grid - 导出的 excel 不会在 IE 中将字符串解析为日期格式

Posted

技术标签:

【中文标题】Ag-grid - 导出的 excel 不会在 IE 中将字符串解析为日期格式【英文标题】:Ag-grid - Exported excel does not parse string to date format in IE 【发布时间】:2017-10-17 05:33:33 【问题描述】:

我正在将ag-grid 数据导出到具有很少date 类型列的excel。在打开导出的文件时,我观察到date 类型的列在从IE 导出时不会自动格式化为“日期”格式。同样的事情在Chrome 中工作正常。下面是格式化日期字符串的代码 -

exportData: function() 
        var vm = this;
        var params = 
            fileName : vm.pageTitle + '.csv',
            processCellCallback  : function(params)  
             if (params.value) 
                 if(params.column.colId === "endDate" || params.column.colId === "startDate")
                    return params.value.toLocaleDateString();
                 
             
             return params.value;
            
        ;
        vm.gridOptions.api.exportDataAsCsv(params);     
    

下面是IE的excel截图-一般格式应该是Date

提前感谢您的帮助。

【问题讨论】:

作为澄清,您正在将数据导出到 csv 文件,然后要求 excel 打开该文件......并且由于 csv 文件不包含数据类型定义,Excel 需要 推断数据类型...你说从 chrome 导出工作正常吗? 【参考方案1】:

根据question,toLocaleDateString() 在 IE 中的行为很时髦。我的猜测是它正在添加一个zero width character。我猜这是因为我已经使用零宽度字符强制在 excel 中进行格式化(我的用例是 1/1 需要保持这种状态,而不是像 excel 想要的那样转换为 1-jan

因此,为了解决您的问题,您可以自己格式化日期以确保放置了哪些字符,或者您可以使用以下方式正则表达式输出任何空白字符:

.toLocaleDateString().replace(/\s/g,'')

【讨论】:

谢谢@Jarod。你的回答有帮助。这确实是toLocaleDateString() 的问题。现在我将日期格式化为(date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear(),它可以工作了。

以上是关于Ag-grid - 导出的 excel 不会在 IE 中将字符串解析为日期格式的主要内容,如果未能解决你的问题,请参考以下文章

在 ag-grid 上使用正确的单元格格式导出到 excel

Ag-grid 导出(Excel 样式):一个表的导出覆盖另一个表导出的样式/格式

AG-GRID Excel 导出:AG-Grid 中是不是有任何方法可以为每个用户配置记录导出限制?

上下文菜单导出中的 ag-grid 企业自定义页脚 excel 和 CSV

在 ag-grid Excel 导出中,如何使空日期时间类型为空单元格而不是 1900.01.00

如何使用 ag-grid 导出到具有 Angular 6 的大数据(50,000 行)的 excel 功能(内存不足错误)?