HSSFWorkBook导出excel2003表数据超过65535条时报错怎么办
来源:互联网 发布:淘宝优惠起群名字大全 编辑:程序博客网 时间:2024/05/22 16:35
考勤管理模块中的签到记录列表数据导出excel2003表时,如果数据量太大,超过了65535条就会报错.
解决办法:当数据每隔65535条时,就新建一个sheet工作表写数据,把数据写到多张sheet表里面.
/** * excel 2003版本的导出方法 支持多个sheet导出 导出的文件后缀为.xls * 由于excel2003最多导出65535条数据 * @param dataMap 要导出的数据 * @param excelFilePath excel文件的存放位置 * @param fileName excel文件名字 * @return */ public String exportXlsExcel(Map<String,List<String[]>> dataMap,String excelFilePath,String fileName){ FileOutputStream fout=null; String fileLocal=""; try{ File file=new File(excelFilePath); if(!file.exists()){ file.mkdirs(); } // 第一步,创建一个webbook,对应一个Excel文件 HSSFWorkbook wb=new HSSFWorkbook(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet=null; List<String[]> dataList=null; HSSFCellStyle style=wb.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // dataList=dataMap.get("签到记录列表"); int i; int k; /** * k表示sheet工作表的张数 */ int dataSizeNum=dataList.size()-1; //减去表头 if (dataSizeNum%EXCEL_EXPORT_PARAM==0){ k=(dataList.size()-1)/EXCEL_EXPORT_PARAM; }else { k=(dataList.size()-1)/EXCEL_EXPORT_PARAM+1; } for (int t=0;t<k;t++){ int titleNum=t+1; sheet=wb.createSheet("签到记录列表"+"("+titleNum+")"); for(i=0;i<=EXCEL_EXPORT_PARAM;i++){ // 生成第一行 第一行是表头,包括表头在内,所以多加一行 HSSFRow row=sheet.createRow(i); /** * 1EXCEL_EXPORT_PARAM表示每张sheet工作表最多写的记录的条数(不包括表头) */ int num=(t*EXCEL_EXPORT_PARAM)+i; if (num>=dataList.size()){ break; } String[] arr=dataList.get(num); /** * t不等于0且i=0时说明又是一张sheet表 */ if (t!=0&&i==0){ arr=dataList.get(0); } for(int j=0;null!=arr&&j<arr.length;j++){ // 给这一行的第一列赋值 HSSFCell cell=row.createCell(j); String value = arr[j]; if(value==null ||"null".equals(value)){ value = ""; } cell.setCellValue(value); cell.setCellStyle(style); if(i==0){ HSSFCellStyle tempStyle=style; tempStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); tempStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index); cell.setCellStyle(tempStyle); } } } } // 第六步,将文件存到指定位置 fileLocal=excelFilePath+"/"+fileName+".xls"; fout=new FileOutputStream(fileLocal); wb.write(fout); }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(fout != null) { fout.close(); } }catch(IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } } return fileLocal; }
0 0
- HSSFWorkBook导出excel2003表数据超过65535条时报错怎么办
- 导出excel(超过65535条数据)例子
- EXCLE无法导出65535条数据时报错;插入数据代码;
- 如何在Google Analytics中导出超过500条数据
- HSSFWorkBooK用法【数据导出为execl】
- sqlserver2005导出成Excel2003表
- 当报表数据行数超过一定值时报错
- 使用poi单sheet导出超过65535条记录
- EXPDP导出数据时报错ORA-12154
- 将数据库中的数据导出为excel文件 HSSFWorkBooK用法
- 导出数据 org.apache.poi.hssf.usermodel.HSSFWorkbook
- HSSFWorkbook导出Excel
- HSSFWorkbook导出EXCEL
- Excel导出(HSSFWorkbook )
- HSSFWorkbook导出Excel
- HSSFWorkbook 导出excel应用
- HSSFWorkbook导出excel
- jxl导出超过65535数据的通用功能
- twitter、facebook、pinterest、linkedin 分享代码
- 笨办法学 Python (Learn Python The Hard Way)——003
- 百度统计原理分析
- 平常碰到的异常(Exception)
- 下拉刷新控件
- HSSFWorkBook导出excel2003表数据超过65535条时报错怎么办
- Android安装应用和跳转应用简单记录
- opencv源码解析之(6):hog源码分析
- 问题 D: P1029
- Centos 6.5 Bringing up interface eth3 Device eth3 does not seem to be present 解决方法
- kafka 集群调优
- userdel命令
- ArraryList 与LinkedList的区别
- 基于XAMPP的Testlink安装和配置