导出Excel 设置单元格的类型
for (.......) {
Boolean isNum = false;//data是否为数值型
Boolean isInteger=false;//data是否为整数
Boolean isPercent=false;//data是否为百分数
if (value != null || "".equals(value)) {
//判断data是否为数值型
isNum = value.toString().matches("^(-?\\d+)(\\.\\d+)?$");
//判断data是否为整数(小数部分是否为0)
isInteger=value.toString().matches("^[-\\+]?[\\d]*$");
//判断data是否为百分数(是否包含“%”)
isPercent=value.toString().contains("%");
//如果单元格内容是数值类型,涉及到金钱(金额、本、利),则设置cell的类型为数值型,设置data的类型为数值类型
XSSFCell contentCell = row.createCell(colIndex);
String text = "";
if (isNum && !isPercent) {
DataFormat df = wb.createDataFormat(); // 此处设置数据格式
if (isInteger) {
// styleCell.setDataFormat(df.getFormat("#,#0"));//数据格式只显示整数
styleCell.setDataFormat(df.getFormat("General"));//数据格式只显示整数
}else{
//styleCell.setDataFormat(df.getFormat("#,##0.000"));//保留三位小数点
styleCell.setDataFormat(df.getFormat("General"));//保留三位小数点
}
// 设置单元格格式
contentCell.setCellStyle(styleCell);
// 设置单元格内容为double类型
contentCell.setCellValue(Double.parseDouble(text));
//sheet.autoSizeColumn(colIndex);
} else {
contentCell.setCellStyle(styleCell);
// 设置单元格内容为字符型
contentCell.setCellValue(text);
//sheet.autoSizeColumn(colIndex);
}
}