jxl对某一列设置单元格格式

问题:

在excel导出的时候,对单元格格式的设置问题

假如某一列是学号或身份证号,导出的时候  使用

Label labelCF = new Label(n,i,123132321323131313);
     ws.addCell(labelCF);

输出的excel中显示是文本格式,左上角有一撇,但是我们双击这个单元格马上会变为数字

 

用以下设置格式的代码进行设置,发现上述问题解决了,但是导出的excel中我们要想在ms Excel中给它添加一条数据,还是会有问题,数字不会自动变成文本

WritableFont wf = new WritableFont(WritableFont.TIMES, 12,
       WritableFont.BOLD, false);
     WritableCellFormat wcfF = new WritableCellFormat(
       NumberFormats.TEXT);
     wcfF.setFont(wf);

 

 

解决办法:

 

WritableFont wf = new WritableFont(WritableFont.TIMES, 12,
      WritableFont.BOLD, false);
    WritableCellFormat wcfF = new WritableCellFormat(
      NumberFormats.TEXT); //定义一个单元格样式
    wcfF.setFont(wf); //设置字体
    CellView cv = new CellView(); //定义一个列显示样式 
    cv.setFormat(wcfF);//把定义的单元格格式初始化进去
    cv.setSize(10*265);//设置列宽度(不设置的话是0,不会显示)
    ws.setColumnView(n, cv);//设置工作表中第n列的样式

 

到此为止问题解决了

 文章来源      520开发网

参考jxl docs http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/

已标记关键词 清除标记
1、导出用的是SXSSFWorkbook的方式,POI版本为4.01,进行设置单元格格式的时候,预期导出的excel格式显示为数值,结果显示为自定义。 2、百度上找了很多种方法,解决方法可归纳为: ① 使用excel的内嵌格式 cell.setCellValue(1.2); HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); **cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));** cell.setCellStyle(cellStyle); ② 正常设置格式 cell.setCellValue(1.2); HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); HSSFDataFormat format= demoWorkBook.createDataFormat(); **cellStyle.setDataFormat(format.getFormat("0.00"));** cell.setCellStyle(cellStyle); ③ 在setCellValue之前需要设置CellType为数值类型 cell.setCellType(CellType.NUMERIC); 百度上的这些方法亲测,针对数值格式来说全部无效。 3、下面贴上部分测试代码,大家帮忙看看: { SXSSFWorkbook workbook = new SXSSFWorkbook(); SXSSFSheet sheet = workbook.createSheet("format"); SXSSFRow row = sheet.createRow(1); SXSSFCell cell = row.createCell(1); cell.setCellValue("A ="); cell = row.createCell(2); cell.setCellValue(20.1376); HSSFDataFormat df = new HSSFWorkbook().createDataFormat(); CellStyle cellStyle = workbook.createCellStyle(); cellStyle.setDataFormat(df.getBuiltinFormat("0.00")); //cellStyle.setDataFormat(workbook.createDataFormat().getFormat("0.0 0")); cell.setCellStyle(cellStyle); FileOutputStream out = new FileOutputStream(new File("formula.xlsx")); workbook.write(out); out.close(); System.out.println("format.xlsx written successfully"); } 导出的excel截图如下: ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572854157_835670.jpg) 希望能有大佬能帮忙解惑一下,欢迎大家一起来讨论讨论。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页