Ambiguous_Toed
2018-08-29 08:09
采纳率: 75%
浏览 8.0k
已采纳

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);
在导出的表格中,单元格格式任然为常规
图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 已采纳

    这个原因很简单,要么你在写代码的时候设置了格式,要么就是你的模板中设置了单元格格式。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 彭不懂^_^ 2018-08-29 08:30

    java使用POI下载导出模板,默认格式为文本格式, 你把你设置的格式去掉看看

    评论
    解决 无用
    打赏 举报
  • hu837389340 2018-08-29 09:04

    把模板里面单元格的格式都去掉就好了

    评论
    解决 无用
    打赏 举报
  • 0808xyj 2018-08-29 09:07
                HSSFWorkbook workBook = new HSSFWorkbook(); 
                HSSFCellStyle cellStyle = workBook.createCellStyle();
                HSSFDataFormat format = workBook.createDataFormat();
                cellStyle.setDataFormat(format.getFormat("@"));
                cell.setCellStyle(cellStyle);
    
    评论
    解决 无用
    打赏 举报
  • zhangpan_soft 2018-08-29 09:36

    将你的数据,最前面加上英文单引号就可以了,比如1111111111111111111111改成'1111111111111111111111111111然后再设置进去,就自动变成字符串,并且原来是字符串的也不影响,比如这是个测试改成'这是个测试设置进去,打开Excel,是没有前面的'的,之后后面内容,其就是字符串标识

    评论
    解决 无用
    打赏 举报
  • 孙平平 2018-09-06 08:12

    HSSFCell textCell = textRow.createCell(j);
    String value = conversionService.convert(property, String.class);
    //设置单元格值时,使用String类型
    textCell.setCellValue(value);

    评论
    解决 无用
    打赏 举报
  • weixin_38757817 2020-07-14 17:36

    试试pageOffice的插件,能方便的导出excel文档

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题