1 回答

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
將評(píng)論轉(zhuǎn)換為答案。保留評(píng)論,因?yàn)樗鼈兛赡芨菀赘M(jìn)
首先,貨幣應(yīng)使用以下格式
_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)
(此格式直接來(lái)自 excel,因此其工作 100%)。
現(xiàn)在我們有了格式,讓我們來(lái)看看遇到的貨幣問(wèn)題。以下代碼顯示了所有貨幣及其符號(hào)/符號(hào):
for (Currency c : Currency.getAvailableCurrencies()) { System.out.println(c.getCurrencyCode() + " : " + c.getSymbol());}
從中我們可以看出,它只有USD
一個(gè)“真實(shí)”符號(hào),而該類(lèi)中的所有其他貨幣都只有它們的貨幣代碼作為符號(hào)。這似乎是這里的實(shí)際問(wèn)題。使用此代碼:
String format = "_(<ccy>* #,##0.00_);_(<ccy>* (#,##0.00);_(<ccy>* \\\"-\\\"??_);_(@_)"; style.setDataFormat(wb.createDataFormat().getFormat(format.replace("<ccy>", "€")));
我們可以看到,它確實(shí)適用于實(shí)際符號(hào),但如果符號(hào)被其貨幣代碼替換,則會(huì)失敗。這導(dǎo)致OP檢查excel,他發(fā)現(xiàn)excel本身提供了一種貨幣格式BGN
,但畢竟apache-poi
不是excel。
只要提供了正確的符號(hào),此提供的格式將適用于大多數(shù)貨幣。我檢查了這個(gè)網(wǎng)站上的幾種貨幣符號(hào),發(fā)現(xiàn)并非所有貨幣符號(hào)都受支持。Дин.
而工程CHF
和RD$
都失敗。這在未來(lái)可能會(huì)改變。
請(qǐng)注意,我使用apache-poi 3.15
. 這可能已經(jīng)在 3.17 中更好用了
添加回答
舉報(bào)