Angularjs 数字过滤器无法与 ui 网格一起正常工作

Angularjs number filter not working properly with ui grid

我在 angular-ui-grid 中使用 angularjs 数字过滤器。在网格中,过滤器工作正常。但是当我将网格导出到 csv 并打开到 excel 时,它无法正常工作。

我也在 exporterFieldCallback 中添加了过滤器。

在网格中:cellFilter: 'number:6', type: 'number' 和在 exporterFieldCallback 中:

if(col.name == 'columnName'){                   
                    return $filter('number')(input,6);
                } 

数字在网格上显示为小数点后 6 位。但是当我将它导出到 csv 并打开到 excel 时,零被截断了。

请找到 this plunker of angularjs number filter,其中数字以指定的 fractionSize 显示,这在网格中也能正常工作。但导出网格时效果不一样。

如果网格中的值为 3.000000,则在 excel 中它仅显示 3。 如果网格中的值为 1.415400,则在 excel 中它仅显示 1.4154

为什么将 angular-ui-grid 导出到 csv 并在 excel 中打开它时会截断零?如何在 excel 中显示与网格中相同的值?

这可能是 Excel 问题,而不是 AngularJS 问题。

当您在 Excel 中打开 CSV 文件时,它会查找数字并对其进行标准化,删除前导零和尾随零。您可以(希望)看到您的 CSV 文件是正确的,方法是在文本编辑器中打开它并检查它是否有前导和尾随零。

根据您需要将数据导入 Excel 的频率,有几个不同的选项,但由于您只需要小数点后 6 位的值,最简单的可能是导入数据,然后使用“增加十进制”选项在 Excel 内重新格式化: