java poi 生成多个sheet
来源:互联网 发布:傲战无双灵阵进阶数据 编辑:程序博客网 时间:2024/06/09 16:44
我的需求是:在一个表格中生成多个sheet,每个sheet的名称动态指定,每个sheet内的内容动态指定。生成的文件名动态指定。
工具类:
package test;import java.io.OutputStream;import java.util.List;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.HSSFRichTextString;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.HSSFColor;public class ExportExcelUtils {/** * @Title: exportExcel * @Description: 导出Excel的方法 * @author: evan @ 2014-01-09 * @param workbook * @param sheetNum (sheet的位置,0表示第一个表格中的第一个sheet) * @param sheetTitle (sheet的名称) * @param headers (表格的标题) * @param result (表格的数据) * @param out (输出流) * @throws Exception */public void exportExcel(HSSFWorkbook workbook, int sheetNum,String sheetTitle, String[] headers, List<List<String>> result,OutputStream out) throws Exception {// 生成一个表格HSSFSheet sheet = workbook.createSheet();workbook.setSheetName(sheetNum, sheetTitle,HSSFWorkbook.ENCODING_UTF_16);// 设置表格默认列宽度为20个字节sheet.setDefaultColumnWidth((short) 20);// 生成一个样式HSSFCellStyle style = workbook.createCellStyle();// 设置这些样式style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);style.setBorderBottom(HSSFCellStyle.BORDER_THIN);style.setBorderLeft(HSSFCellStyle.BORDER_THIN);style.setBorderRight(HSSFCellStyle.BORDER_THIN);style.setBorderTop(HSSFCellStyle.BORDER_THIN);style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 生成一个字体HSSFFont font = workbook.createFont();font.setColor(HSSFColor.BLACK.index);font.setFontHeightInPoints((short) 12);font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 把字体应用到当前的样式style.setFont(font);// 指定当单元格内容显示不下时自动换行style.setWrapText(true);// 产生表格标题行HSSFRow row = sheet.createRow(0);for (int i = 0; i < headers.length; i++) {HSSFCell cell = row.createCell((short) i);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellStyle(style);HSSFRichTextString text = new HSSFRichTextString(headers[i]);cell.setCellValue(text.toString());}// 遍历集合数据,产生数据行if (result != null) {int index = 1;for (List<String> m : result) {row = sheet.createRow(index);int cellIndex = 0;for (String str : m) {HSSFCell cell = row.createCell((short) cellIndex);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellValue(str.toString());cellIndex++;}index++;}}}}
测试数据:(再D盘下生成test.xls文件,并有多个sheet)
package test;import java.io.FileOutputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class PoiTest {@SuppressWarnings("unchecked")public static void main(String[] args) {try {OutputStream out = new FileOutputStream("D:\\test.xls");List<List<String>> data = new ArrayList<List<String>>();for (int i = 1; i < 5; i++) {List rowData = new ArrayList();rowData.add(String.valueOf(i));rowData.add("东霖柏鸿");data.add(rowData);}String[] headers = { "ID", "用户名" };ExportExcelUtils eeu = new ExportExcelUtils();HSSFWorkbook workbook = new HSSFWorkbook();eeu.exportExcel(workbook, 0, "上海", headers, data, out);eeu.exportExcel(workbook, 1, "深圳", headers, data, out);eeu.exportExcel(workbook, 2, "广州", headers, data, out);//原理就是将所有的数据一起写入,然后再关闭输入流。workbook.write(out);out.close();} catch (Exception e) {e.printStackTrace();}}}
如果你有同样的需求,你能看到这。你肯定能设计出你想要的报表格式了。
0 0
- java poi 生成多个sheet
- java poi 生成多个sheet(表格导出)
- 利用poi 生成多个excel sheet
- java poi 通过excel模板导出并且生成多个sheet
- java poi 通过excel模板导出并且生成多个sheet
- java poi 通过excel模板导出并且生成多个sheet
- java poi 通过excel模板导出并且生成多个sheet
- 关于java poi 大数据导出 创建多个sheet
- POI解析excel多个sheet
- poi生成excel表格(xls或者xlsx格式),多个工作sheet
- poi生成excel表格(xls或者xlsx格式),多个工作sheet
- jxls 多个sheet 生成
- java poi excel 模板讀取生成多個sheet且導出
- poi+jdbc实现从数据库中导出表的数据字典结构(单个sheet和多个sheet供你选择),并且生成excel文档,作者:vipyhd
- POI创建Excel创建多个工作表sheet(二)
- POI导出数据到Excel的多个Sheet
- poi操作excel动态创建多个sheet
- excel生成多个sheet .net
- 数据共享ContentProvider和ContentResolver
- php cookie
- android基本组件
- Ext 4.2 鼠标悬停提示
- 简话设计模式之Proxy模式
- java poi 生成多个sheet
- 面向接口编程详解(一)——思想基础(转)
- java各种文件(xml、properties、txt)处理操作的一道题目
- 年末的bala bala bala...
- 数据小助手:数据库操作模块的几个类之间的关系
- 交通灯管理系统
- 跨平台使用Intrinsic函数范例1——使用SSE、AVX指令集 处理 单精度浮点数组求和(支持vc、gcc,兼容Windows、Linux、Mac)
- VS2008 WinCE模拟器上网配置
- mac、cocod2d-x下iphone真机调试方法