这里记录在工作中遇到的一个问题:
在使用poi导出表格的时候,生成的序号,员工编号等数据中包含009这种以0开的数据,在导入的时候需要保留0的方式作为数据,但是使用传统的格式会舍弃掉00,默认显示为9的形式,如何解决呢,这里提供相应的方法:
第一种方式:
cell.setCellType(Cell.CELL_TYPE_STRING);
默认存储数据为字符串格式:
第二种方式:
设置单元格的样式为文本格式:
HSSFCellStyle cellStyle = workbook.createCellStyle();
HSSFDataFormat dataFormat = workbook.createDataFormat();
cellStyle.setDataFormat(dataFormat.getFormat("@"));
cell1.setCellValue("009");
sheet.setDefaultColumnStyle(0,cellStyle);
设置完成后,导出的poi单元格为文本格式,但是当手动编辑的时候,单元格自动变成常规格式,暂时没有解决,希望知道的读者大大能反馈消息,感谢(这里作者查找资料已经解决了这个问题)
这里需要使用下面的代码才能完成操作:
HSSFCellStyle cellStyle = workbook.createCellStyle();
HSSFDataFormat dataFormat = workbook.createDataFormat();
cellStyle.setDataFormat(dataFormat.getFormat("@"));
cell1.setCellStyle(cellStyle);
cell1.setCellValue("009");
建议先尝试1,2,如果不行再尝试最后一种方法。