2012-07-10 29 views
0

我有一个excel文件,其单元格的数据格式从简单货币格式$#,##0.00 ($1,200.00)到更复杂的格式。写入excel文件模板不遵循已定义的单元格数据格式

问题是,当我写入这些单元格时,不遵循这些格式。所以如果我给一个货币格式的单元格输入一个值,这个值就会显示出来而没有格式化:

ex: 我输入了1234。我期望的是$1,234.00(如在Excel单元格中定义的)。我所得到的仍然1234

是在我尝试我甚至试图细胞自身的格式适用于自身

这是使用的代码IM:在检查的Excel文件,我注意到,

ServletContext context = getServletContext(); 
InputStream inp = context.getResourceAsStream("/WEB-INF/MyExcel.xlsx"); 

Workbook wbTemp = new XSSFWorkbook(inp);  
Sheet wbTempSheet = wbTemp.getSheetAt(0); 

Cell targetCell = wbTempSheet.getRow(0).getCell(0); 
targetCell.setCellValue(request.getParameter("myNumber")); 

//i even tried reapplying the cell's own format to itself 
CellStyle cs = targetCell.getCellStyle(); 
String df = cs.getDataFormatString(); 
System.out.println(df); 
cs.setDataFormat(wbTemp.createDataFormat().getFormat(df)); 
targetCell.setCellStyle(cs); 

格式确实得到了实施。但是我需要按标签每个单元格才能看到它生效。是否有替代或至少有一种方法来模拟选项卡操作,以便在打开时格式化单元格?

回答

1

发现有什么问题。它的这一行: targetCell.setCellValue(request.getParameter("myNumber"));

它应该是: targetCell.setCellValue(Double.parseDouble (request.getParameter("myNumber")));

忘记了数字Excel单元格进行格式正确,必须通过双打。

相关问题