POI中设置Excel单元格的类型

1)情景描述:为了实现Excel中Column之间的联动关系,需要把某列单元格的类型置为Text

 

2)初次解决方案中的错误(红色标注):

String sheetName = dataValidation.getSheetName();
HSSFSheet dataSheet = workBook.createSheet(sheetName);
HSSFCellStyle cellTxtStyle = workBook.createCellStyle();
cellTxtStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
int rowNum = 0;
for (int i = 0; i < valueList.length; i++) {
      if (valueList[i][0] != null && valueList[i][0].length() > 0
                 && valueList[i][1] != null && valueList[i][1].length() > 0) {
          HSSFRow row = dataSheet.createRow(rowNum);
          row.createCell(0).setCellValue(valueList[i][0]);
          row.createCell(0).setCellStyle(cellTxtStyle);
          row.createCell(1).setCellValue(valueList[i][1]);
          row.createCell(1).setCellStyle(cellTxtStyle);

          rowNum++;
      }
};

 

3)正确解法:

    HSSFRow row = dataSheet.createRow(rowNum);
    HSSFCell cell = row.createCell(0);
    cell.setCellValue(valueList[i][0]);
    cell.setCellStyle(cellTxtStyle);
    row.createCell(1).setCellValue(valueList[i][1]);

 

4)原因分析:

一个cell被create了两次,后面的会把前面的覆盖。
这就造成了有值的时候没格式,而有格式的时候没值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值