我使用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