急急急!!!poi导出excel表格时设置单元格格式的问题

lvchafengmi 2010-01-25 10:20:23
使用poi写excel表格的时候,由于有数字,并且是以0开头的数字,比如说010之类的。

导出的时候一切正常,但是在导出的excel表格中,修改数字,双击带数字的表格的以后,表格中的数字前面的0就没有了。

于是用了cell.setCellType(HSSFCell.CELL_TYPE_STRING);这个操作,但是正常导出后,还是出现上面的问题。

向各位大侠求助,急急急!!!
...全文
3191 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simple-520 2012-09-23
  • 打赏
  • 举报
回复
cell.setCellType(Cell.CELL_TYPE_STRING); 设置下即可
九两银 2012-09-23
  • 打赏
  • 举报
回复
全部使用文本。string格式
铁匠梁 2010-01-25
  • 打赏
  • 举报
回复
文本即可
道光2008 2010-01-25
  • 打赏
  • 举报
回复
将单元格,格式设置为文本类型即可
dxhangel 2010-01-25
  • 打赏
  • 举报
回复

// 循环单一行,填入每个标题的值
for (int i = 0; i < fields.length; i++) {
Object obj = lstEveryData.get(fields[i]);

String strValue = String.valueOf((obj == null) ? "" : obj);

WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 9, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
WritableCellFormat format = new WritableCellFormat(font, NumberFormats.TEXT);
format.setBorder(Border.ALL, BorderLineStyle.THIN);

Label labelC = new Label(intExelCol, intExcelRow, strValue, format);
ws.addCell(labelC);

//设置宽度
int intThisSize = strValue.getBytes().length;

if(intThisSize > titleCellSize[i]) {
if(intThisSize > PricingConstants.INTCELLMAXSIZE) {
titleCellSize[i] = PricingConstants.INTCELLMAXSIZE;

} else {
titleCellSize[i] = intThisSize;
}
}

ws.setColumnView(intExelCol, titleCellSize[i]);

intExelCol++;
}

我使用的是jxl,但是jxl底层也是使用poi。
在标红色的地方,进行format,这样导出的就可以设置为文本了。
jxl可能和poi的类不一样,但是方式都一样的。。。。
znwuyan318 2010-01-25
  • 打赏
  • 举报
回复
这个和POI 没关系了 - - 完全是OFFICE的自动调整格式- -
caizhh 2010-01-25
  • 打赏
  • 举报
回复
这个问题并不是POI导出单元格格式的问题,而是微软的office在操作单元格的时候自动判断内容是否为全数字,如果是就转成了数字格式了

正如果楼主所说的,导出时候前面的那个0存在,那么这个单元格就是字符串形式(即使导出时加个单引号也是这样),在你用office打开后双击单元格,那么格式就由office来定了,和POI就没关系了
huang1233 2010-01-25
  • 打赏
  • 举报
回复
随便在数字前面或数字后面加个空格试下
sotom 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lewis219 的回复:]
导出的时候前面加个单引号试试
[/Quote]

导出的时候 加上 “'” 到表格中就是数字类型了。 试下。
Dazzlingwinter 2010-01-25
  • 打赏
  • 举报
回复
呃,excel默认打开时,如果单元格都是数字,默认会按数值形式处理,你就是设置了格式也没用的,不信你用记事本打开看一下就知道了
建议导出为csv格式的...
lewis219 2010-01-25
  • 打赏
  • 举报
回复
导出的时候前面加个单引号试试

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧