2017-02-10 5 views
1

私はPHPExcelを使用して金額を印刷していますが、カンマの後に10進数を4桁付ける必要がありますが、後続の0を削除します。例えば、私の入力は次のとおりです。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,

として出力し44,0000の末尾のカンマを取り除くことができないということです

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

440000のように、小数点以下の値を除いた数字を除いて、すべての数字は予想どおりに印刷されます。何か案が?

編集:私はあなたがExcelから解決策が必要だと思う私は、これらのボタンに

enter image description here

を使用することによって、これを達成するためにMS Excelを使用することができます知っているが、私は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」であっても、小数点の後に少なくとも1桁を常に表示するように書式を設定しているからです。 –

+0

はい、申し訳ありませんが、私は「44,0」を意味しました。しかし、私は不必要な '、0'を削除するために住んでいます – Yuri

0

を好むので、あなたの最終的な結果はExcelシートから見ることができ、あなたの要件は数字の書式設定だけでは不可能と思われます。私の提案は、PHPExcelから条件付き数値書式を追加することです。 Hereは、それがExcelを使ってどのように行われるかを示しています。

OR

あなたはPHPExcelクラスをオーバーライドする必要があります。

+0

ありがとうございますが、これは後で時間を失うことを意味します。これは避けたいものです。 PHPExcelをオーバーライドするのが実際にはうまくいく方法です – Yuri

関連する問題