【问题标题】:Ag-grid - Exported excel does not parse string to date format in IEAg-grid - 导出的 excel 不会在 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 导出工作正常吗?

标签: javascript excel internet-explorer ag-grid


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢@Jarod。你的回答有帮助。这确实是toLocaleDateString() 的问题。现在我将日期格式化为(date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear(),它可以工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 2021-02-09
  • 2019-09-14
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多