这个问题在这里已有答案:
我正在尝试使用POI在excel(.xlsx)工作表中显示美元货币符号的金额值 . 我设置的实际值是:2156820.54以及我期望在excel中看到的是:$ 2,156,820.54
我在做
XSSFCellStyle curStyle = workbook.createCellStyle();
XSSFDataFormat df = workbook.createDataFormat();
curStyle.setDataFormat(df.getFormat("$#,#0.00"));
cell.setCellStyle(curStyle);
cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue("2156820.54");
当我生成Excel工作表并在MS Office Excel中打开它时,单元格值仅显示2156820.54 . 但是,当我双击单元格并按Enter键或双击后单击该单元格时,单元格值将更改为$ 2,156,820.54 . 但是我想在打开Excel工作表时显示这个格式化的值,不需要单击单元格来完成格式化 .
我也试过curStyle.setDataFormat((short)7);但同样的结果也是如此 . 这是我的格式化方式或与MS excel本身相关的问题吗?
1 回答
您的问题是您将值设置为字符串 . Excel中的格式规则仅适用于数字,它们不适用于字符串
(在Excel中尝试 - 将两个单元格格式化为%,在一个中输入
1.5
,在另一个中输入'1.5
,并看到只有数字版本被格式化)这一行在这里:
将值设置为字符串,因为您要在字符串中进行解析
相反,将其更改为
然后,当您将其设置为数字时,将应用单元格的格式规则