ajian528 2011-06-07 16:48
浏览 352
已采纳

POI 操作Excel 设置样式的问题,最多设到1212行

大家好,本人用POI循环生成Excel单元格。设置每个单元格的样式。主要代码如下:

for (Sa sa: saList) {

HSSFCell ctnmCell = row.createCell(cellCount++);
ctnmCell.setCellStyle([color=red]getTextStyle(wb));[/color]
ctnmCell.setCellValue(null == sa.getCtnm() ? "--" : sa.getCtnm());

HSSFCell csnmCell = row.createCell(cellCount++);
csnmCell.setCellStyle([color=red]getTextStyle(wb));[/color]
csnmCell.setCellValue(null == sa.getCsnm() ? "--" : sa.getCsnm();

HSSFCell ctntCell = row.createCell(cellCount++);
ctntCell.setCellStyle([color=red]getTextStyle(wb)[/color]);
ctntCell.setCellValue(null == sa.getCtnt() ? "--" : sa.getCtnt());

........// 后面还有很多Cell, 每行27个。
}

private HSSFCellStyle getTextStyle(HSSFWorkbook wb) {
HSSFCellStyle textStyle = wb.createCellStyle();
textStyle.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
textStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
textStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
textStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
textStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
textStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
HSSFDataFormat df = wb.createDataFormat();
textStyle.setDataFormat(df.getFormat("@"));
textStyle.setWrapText(true);
return textStyle;
}

在每行27列的情况下,最多设到1212行的中间。之后的数据就设不上样式了。请问是什么原因?如何解决。

PS:之前我用JXL的时候,也碰到过类似的问题,结果,按照网上修改了一下源代码,解决了。

  • 写回答

2条回答 默认 最新

  • easyj2ee 2011-06-08 13:02
    关注

    补充一下,是对于一个文档中的HSSFCellStyle个数有限制的。这个限制在MS的OFFICE的EXcel中就有。

    对于其它的一样的样式的,使用相同的样式即可:
    [code="java"]
    HSSFCellStyle cellStyle = getTextStyle(wb);

    ctntCell.setCellStyle(cellStyle);
    csnmCell.setCellStyle(cellStyle);
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路