java使用POI导出Excel单元格为数字类型

Luca Ju
2023-05-25 / 0 评论 / 8 阅读 / 正在检测是否收录...

第一版开发的时候,所有的单元格都是文本类型,由于需求方需要导出Excel可以直接使用函数计算,所以需要改动一下,将导出的Excel设置为数值类型。

  1. 创建XSSFCellStyle

    // 此处设置数据格式
    XSSFDataFormat df = wb.createDataFormat();
    
    // 创建单元格样式
    XSSFCellStyle numberStyle = wb.createCellStyle();
    numberStyle.setFillForegroundColor((short) 1); //设置要添加表背景颜色
    numberStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); //solid 填充
    numberStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER); //文字水平居中
    numberStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);//文字垂直居中
    numberStyle.setBorderBottom(BorderStyle.THIN); //底边框加黑
    numberStyle.setBorderLeft(BorderStyle.THIN);  //左边框加黑
    numberStyle.setBorderRight(BorderStyle.THIN); // 有边框加黑
    numberStyle.setBorderTop(BorderStyle.THIN); //上边框加黑
    // 注意#,##0.00_ 后面有一个空格
    numberStyle.setDataFormat(df.getFormat("#,##0.00_ "));
     //为单元格添加背景样式
     sheet=setTitleStyle(sheet,rowNum,colNum,style1);
  2. 创建单元格,并且设置XSSFCellStyle。

    private static XSSFSheet setTitleStyle(XSSFSheet sheet,int rowNum,int colNum,XSSFCellStyle style){
         for (int i = 0; i < rowNum; i++) { //需要行表格
             Row row = sheet.createRow(i); //创建行
             row.setHeight((short)600);
             for (int j = 0; j < colNum; j++) {//需要列
                 row.createCell(j).setCellStyle(style);
             }
         }
         return sheet;
     }
  3. 在为单元格赋值的时候,将数据转换为Double类型。
0

评论 (0)

取消