POI导出Excel时数据大于6W如何新建一个sheet(求详细代码)

[复制链接]
查看11 | 回复2 | 2010-11-11 19:08:18 | 显示全部楼层 |阅读模式
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;
//这个是将数据导出Excel里的代码(可是怎么才能在大于6W时创建新的sheet呢)
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("明细表");
HSSFRow row = sheet.createRow((short) 0);


HSSFRow row2 = sheet.createRow((short) 1);


HSSFRow row3 = sheet.createRow((short) 2);

HSSFRow row4 = sheet.createRow((short) 3);

row3.setHeight((short)466);

//row4.setHeight((short)466);

sheet.addMergedRegion(new Region(0, (short) 0, 1, (short) 10));


HSSFCell ce = row.createCell((short) 0);


ce.setCellValue("共享企业信息明细表"); // 表格的第一行第一列显示的数据



HSSFFont font = wb.createFont();//字体

HSSFCellStyle style1 = wb.createCellStyle();

style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直


style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平

style1.setFont(font);

font.setFontName("宋体");

font.setFontHeightInPoints((short) 15);

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//

ce.setCellStyle(style1); // 样式,居中




for(int i = 0;i < 6;i++){

sheet.addMergedRegion(new Region(2,(short)i,2,(short)i));

HSSFCell ce2 = row3.createCell((short)i);

if(i==0){

ce2.setCellValue("序号");

}else if(i==1){

ce2.setCellValue("企业名称");

}else if(i==2){

ce2.setCellValue("经营地址");

}else if(i==3){

ce2.setCellValue("组织结构代码");

}else if(i==4){

ce2.setCellValue("主管税务所");

}else if(i==5){

ce2.setCellValue("纳税状态");

}

ce2.setCellStyle(style);//样式,居中

}

//导入数据库中数据

for(int i=3;i<shareCompanyInfoList.size()+3;i++){

HSSFRow row5 = sheet.createRow((short) i);



for(int j=0;j<6;j++){

HSSFCell ce2 = row5.createCell((short)j);

if(j==0){

ce2.setCellValue(String.valueOf(i-2));

}else if(j==1){

ce2.setCellValue(shareCompanyInfoList.get(i-3).getNsrmc());

}else if(j==2){

ce2.setCellValue(shareCompanyInfoList.get(i-3).getZcdz());

}else if(j==3){

ce2.setCellValue(shareCompanyInfoList.get(i-3).getZzjgdm());

}else if(j==4){

ce2.setCellValue(shareCompanyInfoList.get(i-3).getZgsws());

}else if(j==5){

ce2.setCellValue(shareCompanyInfoList.get(i-3).getNsrzt());

}

}

}

回复

使用道具 举报

千问 | 2010-11-11 19:08:18 | 显示全部楼层
到一定数目之后重新创建一个工作表
回复

使用道具 举报

千问 | 2010-11-11 19:08:18 | 显示全部楼层
做判断,然后 再调用wb.createSheet
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行