import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Test { public static void main(String[] args) throws Exception { List<List> head = new ArrayList(); //sheet名称 List<String> name = new ArrayList<String>(Arrays.asList(new String[]{"大区","分公司","门店"})); //每个sheet头 List<String> head1 = new ArrayList<String>(Arrays.asList(new String[]{"大区头1","大区头2","大区头3","大区头4","大区头5"})); List<String> head2 = new ArrayList<String>(Arrays.asList(new String[]{"分公司头1","分公司头2","分公司头3"})); List<String> head3 = new ArrayList<String>(Arrays.asList(new String[]{"门店头1","门店头2"})); head.add(head1); head.add(head2); head.add(head3); //每个sheet数据 List<List<List>> data = new ArrayList<List<List>>(); List<List> data1 = new ArrayList<List>(); List<List> data2 = new ArrayList<List>(); List<List> data3 = new ArrayList<List>(); for (int i = 0; i < 10; i++) { List tmpList = new ArrayList(); for (int j = 0; j < 5; j++) { tmpList.add(j); } data1.add(tmpList); } for (int i = 0; i < 4; i++) { List tmpList = new ArrayList(); for (int j = 0; j < 3; j++) { tmpList.add(j); } data2.add(tmpList); } for (int i = 0; i < 6; i++) { List tmpList = new ArrayList(); for (int j = 0; j < 2; j++) { tmpList.add(j); } data3.add(tmpList); } data.add(data1); data.add(data2); data.add(data3); //System.out.println(xx.get(0)); createExcelSheet(name,head,data,"d://1.xls"); } @SuppressWarnings("unchecked") private static void createExcelSheet(List<String> sheetName, List<List> sheetHeader,List<List<List>> sheetData, String fileRealPath) throws Exception { HSSFWorkbook workBook = new HSSFWorkbook(); int sheetnum = sheetName.size(); for(int m=0; m<sheetnum; m++){ HSSFSheet sheet = workBook.createSheet(); String msg = sheetName.get(m).toString(); String str = new String(msg.getBytes("UTF-8"),"UTF-8"); workBook.setSheetName(m,str); HSSFHeader header = sheet.getHeader(); header.setCenter("sheet"); HSSFRow headerRow = sheet.createRow(0); HSSFCellStyle headstyle = workBook.createCellStyle(); HSSFFont headfont = workBook.createFont(); headfont.setColor(HSSFColor.BLACK.index); headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); headstyle.setFont(headfont); //List<String> lst = new ArrayList<String>(); //List lst = Arrays.asList(new String[]{"1","2","3","4","5","6","7","8","9","10"}); for (int i = 0; i < sheetHeader.get(m).size(); i++) { HSSFCell headerCell = headerRow.createCell(i); headerCell.setCellStyle(headstyle); // 设置cell的值 headerCell.setCellValue(sheetHeader.get(m).get(i).toString()); headerCell.setCellStyle(headstyle); } int rowIndex = 1; for (int i = 0; i < sheetData.get(m).size(); i++) { System.out.println("总数:"+sheetData.get(m).size()+"--"+i); List<String> list2 = sheetData.get(m).get(i); HSSFRow row = sheet.createRow(rowIndex); for (int q = 0; q < list2.size(); q++) { // 创建第i个单元格 HSSFCell cell = row.createCell(q); System.out.println(String.valueOf(list2.get(q))); cell.setCellValue(String.valueOf(list2.get(q)).replace("未知", "")); sheet.setColumnWidth(q, (80 * 50)); } rowIndex++; } //FileOutputStream fos = new FileOutputStream(fileRealPath); } FileOutputStream fos = new FileOutputStream(fileRealPath); // sheet.setGridsPrinted(true); // HSSFFooter footer = sheet.getFooter(); // footer.setRight("Page " + HSSFFooter.page() + " of " // + HSSFFooter.numPages()); workBook.write(fos); fos.close(); } }
上面代码的输出本来在for循环内部,这样在写入本地文件的时候没有问题,当使用servlet强制输出到response中就会出现只能显示第一个sheet的情况,所以需要把强制输出调整到for循环之后。
相关推荐
使用poi方式导出excel,支持将多个工作簿合成一个Excel进行导出
基于反射的Excel操作工具类,可以灵活设置表头以及内容,可根据数据类型匹配成POJO,支持正则表达式等
每个sheet允许导出50000条记录,可以配置,如果sheet中的记录数>50000,则创建一个新sheet并从第一行开始导出记录
改资源包含 数据量超过20万以上导出解决方案,还有动态获取数据公共类 1) 把数据分成多个sheet导出。 2) 把数据分成多个excel 导出。 全部都有,还有实例。
a).将数据库中的数据导入excel(2003版.xls)中 b).每个sheet中有数据50000条记录,如果sheet中的记录数>50000,则在新建sheet中导入数据,并且每个sheet都从第一行开始 c).前后台代码都有哦
允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见src/main/resources/import-config.xml) 2、导出xml配置示例如下...
使用POI版本:3.10-FINAL*/ /* 建立新HSSFWorkbook对象*/ HSSFWorkbook wb = new HSSFWorkbook(); /* 建立新的sheet对象*/ HSSFSheet sheet = wb.createSheet("汇总页面"); HSSFRow row = sheet....
java实现excel地导入导出(poi详解).docx
使用poi 分多个 sheet 导出excel,希望对您有帮助。
用Java语言采用接口设计模式、代理设计模式、工厂设计模式实现对excel中的表实现基本的导出(写)功能,把一个对象集合输出到一个excel表中。 【基本功能】 将对象集合导出到Excel表 【扩展功能】 1、自由设置表头 2...
JAVA开发中需要将表格中数据导出成EXCEL文件,其中的某一项又要设置为HTML格式,并支持点击链接,使用POI的开源方式导出时可以参考到此文件的内容!
解决poi大数据量导出excel的代码,该代码中所用的jar包是poi3.9。在测试过程中单个sheet中导出20万数据没有问题。
java利用替换Excel2007中sheet方式导出excel,支持大数据量,高性能
java导出excel例子,使用的是poi,可以分sheet导出,可以导出txt
基于注解,ExcelExport.java将list集合导出到excel,支持多sheet导出 ExcelImport将excel导入到集合,支持多sheet导入 用法参见个人博客
maven项目需要的jar jar包 <!-- poi --> <groupId>org.apache.poi <artifactId>poi <version>3.9 ...Sheet sheet = wb.createSheet("page1"); 解释:该方法相当于在excel文件里新建了一个工作页,
利用poi导入导出Excel xls,xlsx
1. 第一部门:详细介绍POI使用以及完成各种复杂的Excel的导出(动态筛选、多对象数据导出到同一sheet内、动态横向合并单元格以及动态纵向合并单元格等) 2.第二部分:使用EasyExcel导出excel的多种情况的例子介绍...
本文主要介绍了Java根据模板导出Excel报表并复制模板生成多个Sheet页的方法,具有很好的参考价值。下面跟着小编一起来看下吧
Jakarta POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的...