POI导出Excel表格,去掉数字框的左上角绿色的小三角

在用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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值