2017-02-10 3 views
1

Я использую PHPExcel для печати некоторого количества денег, и мне нужно, чтобы они имели 4 десятичных числа после запятой, но я хочу удалить любой конечный ноль. Например, мой вход:Невозможно форматировать число в PHPExcel

Input: 11,1230 => Wanted output: 11,123 
Input: 0,=> Wanted output: 0,
Input: 8,3200 => Wanted output: 8,32 
Input: 44,0000 => Wanted output: 44  <--error is here 

Проблема заключается в том, что я не могу избавиться от Запятая из 44,0000, который печатает, как 44,

Я использую следующую команду:

$activeSheet->getStyle("K10")->getNumberFormat()->setFormatCode('€ ####0.####'); 

Все номера печатаются так, как ожидалось, за исключением этих чисел без значительных значений десятичных знаков, например 44,0000. Есть идеи?

EDIT: Я знаю, что я могу использовать MS Excel для достижения этой цели, с помощью этих кнопок

enter image description here

, но я предпочел бы PHP решение

+0

Какой у вас десятичный разделитель? например 1/2 = 0,5 или 0,5? – TRiNE

+1

0,5 как в примерах – Yuri

ответ

1

Возможно, вы имели в виду использовать

€ ####0.0000 

или

€ ####0.0### 

вместо

€ ####0.#### 

# говорит MS Excel только для отображения цифр в таком положении, при необходимости, в то время как 0 сообщает, что MS Excel всегда отображает цифры в в положении (даже если эта цифра только 0)

Но если вы используете .####, MS Excel всегда будет отображать десятичный разделитель, даже если нет никаких цифр для отображения следующего за ним, если не использовать условное форматирование с формулой типа =MOD(A1,1)>0

+0

Я пробовал с #### 0.0 ###, который, кажется, является лучшим форматом, но все равно печатает '44,' – Yuri

+0

Ну, он должен напечатать '44,0' , потому что он явно сообщает MS Excel, чтобы форматировать значение, чтобы всегда отображать по крайней мере одну цифру после десятичного числа, даже если эта цифра является «0» –

+0

Да, извините, я имел в виду «44,0». Но я бы выжил, чтобы удалить ненужный ', 0' – Yuri

0

Я думаю, вам нужно решение от первенствует, потому что ваш конечный результат будет виден на листе excel, и ваше требование кажется невозможным только с использованием форматирования чисел. Мое предложение - добавить форматирование условного числа из PHPExcel. Here показывает, как это делается с использованием excel.

ИЛИ

Вы, возможно, придется переопределить классы PHPExcel.

+0

Спасибо, но это означало бы потерю времени после этого, чего я бы хотел избежать. Переопределение PHPExcel на самом деле является лучшим способом заставить его работать – Yuri

Смежные вопросы