POI导出Excel表格,去掉数字框的左上角绿色的小三角 博客分类: Java POI导出Excel表格去掉数字框的左上角绿色的小三角
程序员文章站
2024-03-15 13:18:59
...
在用POI导出Excel表格,数字框的左上角有个绿色的小三角,看着很不舒服,如下图所示:
目的:当单元格为数字时,不要转为文本输出,就直接按数字格式输出,去掉左上角的绿色小三角形。
解决办法:在网上找了很多资料,在我这里都不管用,我的解决思路,是改变单元格样式,设置为数值型,然后判断要输出的单元格内容,如果为数值型,直接输出,其他都转为字符串类型,按字符串输出,如果有Date型,也一并转为字符串。
首先设置单元格类型:
public static HSSFCellStyle getContentStyle (HSSFWorkbook workbook) { HSSFCellStyle contentStyle = workbook.createCellStyle(); //设置内容行格式 contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); contentStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中 contentStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); contentStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); contentStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); contentStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); HSSFDataFormat df = workbook.createDataFormat(); //此处设置数据格式 contentStyle.setDataFormat(df.getFormat("#,#0")); //数据格式只显示整数,如果是小数点后保留两位,可以写contentStyle.setDataFormat(df.getFormat("#,#0.00")); return contentStyle; }
判断要导出的数据类型:
if(map3.get(key)==null) { NameContent.setCellValue(""); } else { if(map3.get(key).getClass().getName().equals("java.lang.Integer")) { //判断数据输出类型 NameContent.setCellStyle(contentStyle); //一定要先设置单元格数据类型 NameContent.setCellValue( Double.parseDouble(map3.get(key).toString()));//再输出数据 }else { NameContent.setCellStyle(contentStyle); NameContent.setCellValue(map3.get(key).toString()); } }
注意事项:先设置数据类型!!!
修改以后的效果图,如下所示:
参考文章:
http://biancheng.dnbcw.info/java/102139.html
http://blog.csdn.net/soundfly/article/details/7397764