Java使用POI导出的Excel为文本格式

839 阅读1分钟

基于XSSFWorkbook 实现POI设置指定列为文本格式

// 创建workbook工作簿
 XSSFWorkbook xssfWorkbook= new XSSFWorkbook();
// 样式
 CellStyle textStyle = workbook.createCellStyle();
// 设置文本格式
 textStyle.setDataFormat(worbook.createDataFormat().getFormat("@"));
 for(int i = 0; i < resultList.size; i++){
    // 创建行
    Row row = sheet.createRow(i+1);
    for(int j = 0; j < header.size(); j++){
        switch(j){
        case 0:
            // 设置单元格为文本格式CellUtil.createCell(行,列,值,样式)
             CellUtil.createCell(row,j,value,textStyle);
             break;
        default:
            CellUtil.createCell(row,j,"",textStyle);
        }     
    }    
 }
 

注:因为XSSF好像不支持设置每列为文本格式,只能获取到单元格将其设置;

基于HSSF遍历表头直接设置即可

  XSSFWorkbook xssfWorkbook= new XSSFWorkbook();
  Row row = sheet.createRow(0);
  CellStyle textStyle = workbook.createCellStyle();
  textStyle.setDataFormat(worbook.createDataFormat().getFormat("@"));
  for(int m = 0;m < header.length; m++){
      // 表头设置样式
      Cell cell = Row.crateCell(m);
      cell.setCellValue(header[m]);
      cell.setCellStyle(headerCellStyle);
      // 对单独某一列样式赋值,第一个参数为列数(从0开始),第二个参数为样式 所有列的话,循环列进行操作即可
      sheet.setDefaultColumnStyle(m,style);
  }