Apache poi优秀(Apache poi to excel)

编程入门 行业动态 更新时间:2024-10-08 20:29:15
Apache poi优秀(Apache poi to excel)

我正在使用Apache poi将值导出到excel。在达到32767行后,值将停止打印。 我已经实现了在其他工作表中打印值的逻辑,它可以工作,但值重复....任何解决方案??????

protected void populateRows(History history, String mmddyy, HSSFSheet ss) { log.debug("populateRows(History, String, HSSFSheet)"); ArrayList<Unit> list = history.entryList; Iterator it = list.iterator(); while (it.hasNext()) { Unit u = (Unit) it.next(); HSSFRow row = ss.createRow((short) ss.getLastRowNum() + 1); // HSSFRow row = ss.createRow(ss.getLastRowNum() + 1);//added by magesh // System.out.println("number of rows "+ ss.getLastRowNum()); row = ExcelHelper.fillTheRowOnly(wb, row, numColumns); SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); if (u.id != 0) { row.getCell((short) COLNUM_ID).setCellValue(u.id); } row.getCell((short) COLNUM_LENAME).setCellValue(history.lename); row.getCell((short) COLNUM_CORPTAXCODE).setCellValue(history.corptaxcode); row.getCell((short) COLNUM_ADJUSTED).setCellValue(u.adjusted); row.getCell((short) COLNUM_ADJUSTED).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_CARRYFORWARD).setCellValue(u.carryForward); row.getCell((short) COLNUM_CARRYFORWARD).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_CUM_CARRYFORWARD).setCellValue(u.cumulativeCarryForward); row.getCell((short) COLNUM_CUM_CARRYFORWARD).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_EXPIRED_SYSTEM).setCellValue(u.expiredSystemGenerated); row.getCell((short) COLNUM_EXPIRED_SYSTEM).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_GENERATED).setCellValue(u.generated); row.getCell((short) COLNUM_GENERATED).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_UTILIZED_SYSTEM).setCellValue(u.utilizedSystemGenerated); row.getCell((short) COLNUM_UTILIZED_SYSTEM).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_UTILIZED).setCellValue(u.utilized); row.getCell((short) COLNUM_UTILIZED).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_JURISDICTION).setCellValue(history.jurisdictionName); if (history.year != null) { row.getCell((short) COLNUM_NOLYEAR).setCellValue(formatter.format(history.year)); } row.getCell((short) COLNUM_NOTES).setCellValue(u.notes); if (u.unitType.equals(StateTaxConstants.NOL_ADJUSTMENT)) { row.getCell((short) COLNUM_ADJUSTMENT_DESCR).setCellValue(u.adjusted_descr); } if(u.postDate != null) { row.getCell((short) COLNUM_POSTDATE).setCellValue(formatter.format(u.postDate)); } if (u.referenceDate != null) { row.getCell((short) COLNUM_REFDATE).setCellValue(formatter.format(u.referenceDate)); } row.getCell((short) COLNUM_USERNAME).setCellValue(u.userName); row.getCell((short) COLNUM_FEIN).setCellValue(history.fein); row.getCell((short) COLNUM_REVIEWED).setCellValue(u.reviewed); row.getCell((short) COLNUM_PREPOST).setCellValue(u.prepost); row.getCell((short) COLNUM_HISTNAME).setCellValue(u.histname); row.getCell((short) COLNUM_YRENDORIG).setCellValue(u.yrendorig); } } protected void populateRows(History history, String mmddyy, HSSFSheet ss) { log.debug("populateRows(History, String, HSSFSheet)"); ArrayList<Unit> list = history.entryList; Iterator it = list.iterator(); while (it.hasNext()) { Unit u = (Unit) it.next(); HSSFRow row = ss.createRow((short) ss.getLastRowNum() + 1); // HSSFRow row = ss.createRow(ss.getLastRowNum() + 1); // System.out.println("number of rows "+ ss.getLastRowNum()); row = ExcelHelper.fillTheRowOnly(wb, row, numColumns); SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); if (u.id != 0) { row.getCell((short) COLNUM_ID).setCellValue(u.id); } row.getCell((short) COLNUM_LENAME).setCellValue(history.lename); row.getCell((short) COLNUM_CORPTAXCODE).setCellValue(history.corptaxcode); } }

I am using Apache poi to export the values to excel.after reaching 32767 rows the values are stop printing. I have implemented the logic for printing the valuesin other sheet,it works but values getting repeated.... Any solution??????

protected void populateRows(History history, String mmddyy, HSSFSheet ss) { log.debug("populateRows(History, String, HSSFSheet)"); ArrayList<Unit> list = history.entryList; Iterator it = list.iterator(); while (it.hasNext()) { Unit u = (Unit) it.next(); HSSFRow row = ss.createRow((short) ss.getLastRowNum() + 1); // HSSFRow row = ss.createRow(ss.getLastRowNum() + 1);//added by magesh // System.out.println("number of rows "+ ss.getLastRowNum()); row = ExcelHelper.fillTheRowOnly(wb, row, numColumns); SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); if (u.id != 0) { row.getCell((short) COLNUM_ID).setCellValue(u.id); } row.getCell((short) COLNUM_LENAME).setCellValue(history.lename); row.getCell((short) COLNUM_CORPTAXCODE).setCellValue(history.corptaxcode); row.getCell((short) COLNUM_ADJUSTED).setCellValue(u.adjusted); row.getCell((short) COLNUM_ADJUSTED).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_CARRYFORWARD).setCellValue(u.carryForward); row.getCell((short) COLNUM_CARRYFORWARD).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_CUM_CARRYFORWARD).setCellValue(u.cumulativeCarryForward); row.getCell((short) COLNUM_CUM_CARRYFORWARD).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_EXPIRED_SYSTEM).setCellValue(u.expiredSystemGenerated); row.getCell((short) COLNUM_EXPIRED_SYSTEM).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_GENERATED).setCellValue(u.generated); row.getCell((short) COLNUM_GENERATED).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_UTILIZED_SYSTEM).setCellValue(u.utilizedSystemGenerated); row.getCell((short) COLNUM_UTILIZED_SYSTEM).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_UTILIZED).setCellValue(u.utilized); row.getCell((short) COLNUM_UTILIZED).setCellStyle(setPosFormat()); row.getCell((short) COLNUM_JURISDICTION).setCellValue(history.jurisdictionName); if (history.year != null) { row.getCell((short) COLNUM_NOLYEAR).setCellValue(formatter.format(history.year)); } row.getCell((short) COLNUM_NOTES).setCellValue(u.notes); if (u.unitType.equals(StateTaxConstants.NOL_ADJUSTMENT)) { row.getCell((short) COLNUM_ADJUSTMENT_DESCR).setCellValue(u.adjusted_descr); } if(u.postDate != null) { row.getCell((short) COLNUM_POSTDATE).setCellValue(formatter.format(u.postDate)); } if (u.referenceDate != null) { row.getCell((short) COLNUM_REFDATE).setCellValue(formatter.format(u.referenceDate)); } row.getCell((short) COLNUM_USERNAME).setCellValue(u.userName); row.getCell((short) COLNUM_FEIN).setCellValue(history.fein); row.getCell((short) COLNUM_REVIEWED).setCellValue(u.reviewed); row.getCell((short) COLNUM_PREPOST).setCellValue(u.prepost); row.getCell((short) COLNUM_HISTNAME).setCellValue(u.histname); row.getCell((short) COLNUM_YRENDORIG).setCellValue(u.yrendorig); } } protected void populateRows(History history, String mmddyy, HSSFSheet ss) { log.debug("populateRows(History, String, HSSFSheet)"); ArrayList<Unit> list = history.entryList; Iterator it = list.iterator(); while (it.hasNext()) { Unit u = (Unit) it.next(); HSSFRow row = ss.createRow((short) ss.getLastRowNum() + 1); // HSSFRow row = ss.createRow(ss.getLastRowNum() + 1); // System.out.println("number of rows "+ ss.getLastRowNum()); row = ExcelHelper.fillTheRowOnly(wb, row, numColumns); SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); if (u.id != 0) { row.getCell((short) COLNUM_ID).setCellValue(u.id); } row.getCell((short) COLNUM_LENAME).setCellValue(history.lename); row.getCell((short) COLNUM_CORPTAXCODE).setCellValue(history.corptaxcode); } }

最满意答案

问题出在您的代码中:

HSSFRow row = ss.createRow((short) ss.getLastRowNum() + 1);

你将行索引转换为short。

请尝试使用此代码:

HSSFRow row = ss.createRow((int) ss.getLastRowNum() + 1);

The problem is in your code:

HSSFRow row = ss.createRow((short) ss.getLastRowNum() + 1);

you're casting the row index to short.

Try this code instead:

HSSFRow row = ss.createRow((int) ss.getLastRowNum() + 1);

更多推荐

本文发布于:2023-08-07 13:07:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1464042.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:优秀   Apache   poi   excel

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!