我使用apache-poi來創建一些報告。我有一個小數點分隔符的問題。現在我有以下顯示在Excel文件:Apache POI格式化Excel文件中的雙數
爲111.2343 - > 111.23
爲111.23 - > 111.23
爲111.2 - > 111.2
爲111 - > 111。(見最後一點)
問題是與111號碼。我不想看到後面的點(或逗號,取決於語言)。
這是我當前的格式化單元格的代碼。這可以通過使用apache-poi來實現嗎?
謝謝
尤利安
PS:有沒有在POI使用java.text.Format子的方法嗎?我看到這有DecimalFormat setDecimalSeparatorAlwaysShown方法,它做我想做的。
private void createColumnStyle(XSSFSheet sheet, int maxRows,int col)
{
XSSFWorkbook wb = sheet.getWorkbook();
XSSFFont font = wb.createFont();
font.setFontHeightInPoints((short)10);
font.setFontName("Calibri");
XSSFCellStyle colStyle = wb.createCellStyle();
colStyle.setFont(font);
colStyle.setAlignment(HorizontalAlignment.RIGHT);
colStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
colStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);
colStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);
colStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
CreationHelper createHelper = wb.getCreationHelper();
colStyle.setDataFormat(createHelper.createDataFormat().getFormat("#,##0.##"));
for (int i=3; i<maxRows; i++)
{
XSSFCell cell = sheet.getRow(i).createCell(col);
cell.setCellStyle(colStyle);
}
}
如果您設置Excel來格式化單元格的顯示方式,並在Apache POI中讀取該格式,那麼格式字符串是否會出色地保存以獲取該格式? – Gagravarr
@Gagravarr這種格式將是... :)? – INS
我不知道,但這是一個完全不同的問題!一旦你知道如何在Excel中格式化它,將文件寫出來,使用POI讀取它,查看格式究竟是什麼(Excel有時會在寫入時轉換格式字符串),最後讓POI以該格式寫入單元格樣式 – Gagravarr