Я использую angular-ui-grid
и его экспорт в функциональность csv. В csv
данные файла поступают правильно. Я использую ниже функцию фильтра для числовых данных.Excel ведет себя неправильно для значений с десятичными знаками, экспортированными из Javascript
HelperServices.filter('customCurrencyFormat',function($filter){
return function(val, cond , decimalPlaces){
if(typeof decimalPlaces =='undefined' || decimalPlaces ==null){
decimalPlaces = 2;
}
if(val == "0" && cond == "showZero"){
return ($filter('currency')(val, "", decimalPlaces));
}else if(val == 0 && cond == "hideZero"){
return null;
}else{
if(val < 0){
console.log(($filter('currency')(val, "", decimalPlaces)).replace("(", "-").replace(")", ""));
return ($filter('currency')(val, "", decimalPlaces)).replace("(", "-").replace(")", "");
}else{
return ($filter('currency')(val, "", decimalPlaces));
}
}
}
});
Здесь console.log
оператор печати ниже выход, который является правильным:
И когда я открываю на экспорт csv
первенствует, он показывает, как это:
Значение «-310.00» отображается как «-310» в excel (без конечных нулей) и даже значение «-10,978.00» имеет завершающие нули, но оно точно такое же, как и на консоли.
Одна вещь, которую я заметил, это то, что если «,» приходит к значению, оно правильно напечатано в excel. Но с angualrjs
валютный фильтр «,» не подходит для трехзначных значений.
Почему excel удаляет конечные нули для некоторых значений и не удаляет какие-либо другие значения?
номер типа уже применяется к столбцу сетки в коде angularjs. – Valay
Я не уверен, что вы подразумеваете под этим, но я уверен, что эта информация теряется при сохранении файла 'csv'. Это простые текстовые файлы, которые не могут сохранять метаданные, такие как типы данных. –
Хорошо, я понял, что информация сохраняется при сохранении в csv. Тогда почему некоторые значения приходят с фильтром, примененным к нему? – Valay