Java 使用POI导出excel表格,无法将单元格设置为文本格式
要把表格导出后,对id信息进行修改后再导回,修改过程中输入的都是数值类型的尝试使用两种方法设置单元格的文本格式后,任然单元格会在被双击后变成科学技术法。
使用的两种设置方式,第一种如下:
// 生成一个(带标题)表格
HSSFSheet sheet = workbook.createSheet();
// 表数统计
int count = 1;
// 生成一个表格
workbook.setSheetName(count - 1, sheetTitle + count);
// 生成一个样式
HSSFCellStyle style = workbook.createCellStyle();
// 因为导出表格式不想要数字,保留原有编号,需要设置格式
HSSFDataFormat format = workbook.createDataFormat();
style.setDataFormat(format.getFormat("@"));
第二种:
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
在导出的表格中,单元格格式任然为常规
这个原因很简单,要么你在写代码的时候设置了格式,要么就是你的模板中设置了单元格格式。
java使用POI下载导出模板,默认格式为文本格式, 你把你设置的格式去掉看看
把模板里面单元格的格式都去掉就好了
HSSFWorkbook workBook = new HSSFWorkbook();
HSSFCellStyle cellStyle = workBook.createCellStyle();
HSSFDataFormat format = workBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("@"));
cell.setCellStyle(cellStyle);
将你的数据,最前面加上英文单引号就可以了,比如1111111111111111111111
改成'1111111111111111111111111111
然后再设置进去,就自动变成字符串,并且原来是字符串的也不影响,比如这是个测试
改成'这是个测试
设置进去,打开Excel,是没有前面的'
的,之后后面内容,其就是字符串标识
HSSFCell textCell = textRow.createCell(j);
String value = conversionService.convert(property, String.class);
//设置单元格值时,使用String类型
textCell.setCellValue(value);
试试pageOffice的插件,能方便的导出excel文档