2014-12-10 11 views
6

Chcę sformatować komórki liczbowe, używając przecinka jako separatora tysięcy. Na przykład:Numer formatu z separatorem tysięcy w programie Excel przy użyciu Apache POI

12  -> 12 
1200  -> 1,200 
12000  -> 12,000 
12000000 -> 12,000,000 
120000000 -> 120,000,000 

Mam następujący kod. Co powinienem użyć jako formatStr? Czy istnieje łatwy sposób? Czy muszę wykryć liczbę zer, aby wyprodukować coś takiego: #,###,###?

String formatStr = ""; 
HSSFCellStyle style = workbook.createCellStyle(); 
HSSFDataFormat format = workbook.createDataFormat(); 
style.setDataFormat(format.getFormat(formatStr)); 
cell.setCellStyle(style); 
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); 

Należy pamiętać, że mam do czynienia z liczbami. Typ komórki będzie numeryczny, a nie łańcuchowy.

Aktualizacja

enter image description here

Odpowiedz

7

Wystarczy #,### lub #,##0 powinno wystarczyć. Excel interpretuje to jako mający separatory tysięcy co trzy cyfry (nie tylko przed trzema ostatnimi, które, jak wnioskuję, jest tym, czego oczekiwałeś).

enter image description here

W duchu nauczania człowieka do ryb, to w jaki sposób można znaleźć dla siebie:

formacie jak liczba, 0 miejsc po przecinku, z 1000 separatora:

enter image description here

Kliknij przycisk OK, a następnie ponownie otwórz okno dialogowe formatu liczb i przejdź do opcji Niestandardowy. Spójrz na kod formatowania ("Typ"). Jest napisane: #,##0, które dla mnie daje dokładnie taki sam wynik, jak #,###.

enter image description here

+0

Dokładnie tego chcę, ale kiedy próbuję tego w Excelu, otrzymuję '1200,'. Nawet gdy spróbowałem twojego przykładu liczby, to samo zachowanie pozostaje (co jest dziwne). Mam zamiar wypróbować to w moim kodzie java i wrócić. Sprawdź aktualizację zrzutu ekranu (być może robię coś nie tak). Właśnie przegłosowano na razie. – alkis

+0

Dziwne. Ustawienia regionalne Excela? ... Przyjrzyj się rozszerzonej odpowiedzi. Czy to ci się bardziej zbliża? –

+0

Ok teraz rozumiem. Druga część rozwiązać go dla mnie, ponieważ ja szukać z „tysięcy SEPERATOR” słowa kluczowe i to wymyślił http://stackoverflow.com/questions/14876548/apache-poi-thousand-separator. Zaakceptowany oczywiście. Proszę nie sądzę, że jestem leniwy, szukałem odpowiedzi, ale nie podałem poprawnych słów kluczowych. – alkis

5

Wystarczy dodać to:

style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); 

i będzie to zgodne z formatem ty want.You można odnieść this link aby uzyskać więcej ustawienie formatu.

Powiązane problemy