- 浏览: 204197 次
文章分类
- 全部博客 (91)
- 数据结构 (1)
- Android (8)
- 配置问题 (2)
- Java,Jfreechart,pdf,SVG (1)
- jFreeChart,struts2 (2)
- 问题—解决方式 (1)
- 项目 (2)
- S2SH (5)
- IDE工具 (4)
- Hibernate (1)
- JSP、EL (1)
- 数据库、MYSQL (2)
- 设计模式 (1)
- GUI、线程 (1)
- 时间操作 (2)
- 访问路径 (1)
- socket编程 (1)
- 多线程 (1)
- UDP、数据报 (1)
- AWT (1)
- 插件系列知识 (1)
- JavaScript (3)
- 数据库 (7)
- ExtJS (6)
- 总结经验 (6)
- 报表导出 (2)
- 编程软件 (1)
- 操作系统 (3)
- 互联网 (1)
- CSS样式 (1)
- 算法 (1)
- 文件IO流操作 (6)
- 工作生活感悟 (2)
- Java Swing (1)
- 数据库 Oracle (1)
- Java (6)
- Debug以及解决方案 (1)
- EJB (1)
- 文章集锦 (1)
最新评论
chinese代表第一行的中文名称,english代表数据列对应的英文名称package com.util.report; import java.util.Date; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; 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.HSSFColor; import org.apache.poi.hssf.util.Region; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Row; import com.ibm.icu.text.SimpleDateFormat; public abstract class ReportExcelUltity { private HttpServletResponse response; private HSSFWorkbook workbook; private HSSFSheet sheet; private HSSFRow row; private String fileName; private String[] header; private String title; private int lineNum; //从0开始 private HSSFCellStyle contentCellStyle; private int [][] storeWidth = new int[100][1]; void setConfiguration(String fileName) { //response.setContentType("ms-excel"); response.setContentType("application/ms-excel" ); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls"); sheet = workbook.createSheet(fileName); } void setTitle() { HSSFCellStyle style = workbook.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION); Font font = workbook.createFont(); font.setFontHeightInPoints((short)16); font.setColor(HSSFColor.BLUE.index); font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); font.setBoldweight((short)10); style.setFont(font); sheet.addMergedRegion(new Region(0,(short)0,1,(short)(header.length-1))); //标题 sheet.addMergedRegion(new Region(2,(short)0,2,(short)(header.length-1)));//时间 //第几行,第几个单元格,第几行,第几个单元格(从0开始) sheet.createFreezePane( 2, 4); //列数,行数(从1开始) HSSFRow row = sheet.createRow(0); //从0开始 HSSFCell cell = row.createCell(0); //从0开始 cell.setCellValue(this.title); cell.setCellStyle(style); row = sheet.createRow(2); //从0开始 cell = row.createCell(0); //从0开始 cell.setCellValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); style= workbook.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_RIGHT); cell.setCellStyle(style); lineNum = 2; } void setHeader(String[] headers) throws Exception { row = sheet.createRow(++lineNum); HSSFCellStyle style = workbook.createCellStyle(); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION); style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); Font font = workbook.createFont(); font.setColor(HSSFColor.YELLOW.index); font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); style.setFont(font); for (int i = 0; i < headers.length; i++) { Cell cell = row.createCell(i); cell.setCellValue(headers[i]); cell.setCellStyle(style); setMaxWidth(i, headers[i]); } } public abstract void setContent() throws Exception; public ReportExcelUltity(HttpServletResponse response) { this.response = response; try { workbook = new HSSFWorkbook(); contentCellStyle = this.getWorkbook().createCellStyle(); contentCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void export(String fileName, String title, String[] header) { try { this.fileName = fileName; this.header = header; this.title = title; setConfiguration(fileName); setTitle(); setHeader(header); setContent(); handleLast(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { releaseResource(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } private void handleLast() throws Exception { // TODO Auto-generated method stub for (int j = 0; j < header.length; j++) { storeWidth[j][0] = storeWidth[j][0] == 0?1:storeWidth[j][0]; if (storeWidth[j][0] < 4){ getSheet().setColumnWidth(j,(storeWidth[j][0])*800); }if(storeWidth[j][0] > 255){ getSheet().setColumnWidth(j,(storeWidth[j][0])); } else getSheet().setColumnWidth(j,(storeWidth[j][0])*400); } workbook.write(response.getOutputStream()); } public void releaseResource() throws Exception { response.getOutputStream().flush(); response.getOutputStream().close(); } public HSSFWorkbook getWorkbook() { return workbook; } public int getLineNum() { return lineNum; } public void setLineNum(int lineNum) { this.lineNum = lineNum; } public void setMaxWidth(int index,String str){ //设置每列的最大宽度 if (!StringUtils.isBlank(str) && storeWidth[index][0] < str.length()) { storeWidth[index][0] = str.length(); } } public HSSFSheet getSheet() { return sheet; } /** * 增加单元格,填充内容 * @param row * @param desc * @param index * @return */ public Cell addCell(Row row,String desc,int index) { // TODO Auto-generated method stub Cell cell = row.createCell(index); cell.setCellValue(desc); cell.setCellStyle(contentCellStyle); setMaxWidth(index, desc); return cell; } protected Row getNextRow(){ return workbook.getSheet(fileName).createRow(++lineNum); } }@SuppressWarnings("unchecked") public String getDataExcelAndPdf(AuditRecord record, String condiftion) { Class auditClass = record.getClass(); Method methods[] = auditClass.getDeclaredMethods(); String resultString = ""; for (Method methodMeta : methods) { if (methodMeta.getName().startsWith("get")) { if (methodMeta.getName().substring(3).toUpperCase().equals( condiftion.toUpperCase())) { try { Object o = methodMeta.invoke(record); if (o != null) { resultString += (o.toString()); } } catch (Exception e) { e.printStackTrace(); } } } } return resultString; }
String chinese = ServletActionContext.getRequest().getParameter("chinese"); String engish = ServletActionContext.getRequest().getParameter("english"); // 此处根据exportRows 去数据库中查询数据,设置到exportRows中 exportRows = getAllReportRecord(tableName); chineseArray = chinese.split(","); englishArray = engish.split(","); HttpServletResponse response = ServletActionContext.getResponse(); new ReportExcelUltity(response) { @Override public void setContent() throws Exception { // TODO Auto-generated method stub CellStyle cellStyle = this.getWorkbook().createCellStyle(); cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); for (int i = 0; i < exportRows.size(); i++) { Row row = getNextRow(); int n = 0; for (String string : englishArray) { if (string.equals("srcIp")) string = "srcToString"; else if (string.equals("destIp")) string = "destToString"; addCell(row, getDataExcelAndPdf(exportRows.get(i),string), n++); } } } }.export("AuditBSReport", "AuditBSReport", chineseArray);
下面是导出的类POI
相关推荐
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...
Apache POI是一个强大的库,它允许开发者使用Java来读取、写入和修改Microsoft Office格式的文件,包括Excel(.xlsx, .xls)。本项目通过Apache POI实现了Excel的导入与导出功能,并在操作过程中加入了进度条展示,...
在本示例"SSM框架利用poi导入导出Excel文件 demo"中,我们将探讨如何在SSM项目中使用Apache POI库来实现Excel文件的导入与导出功能。 Apache POI是一个流行的开源库,它允许开发者在Java应用程序中创建、修改和显示...
这个“excel poi工具类”是利用Apache POI库来实现对Excel文件进行导入、导出、合并单元格以及处理计算公式的功能。下面我们将深入探讨这些知识点。 **1. Apache POI库介绍** Apache POI是一个开源项目,它为Java...
导出Excel文件: 1. **创建Workbook和Sheet**:首先,你需要创建一个新的Workbook实例,然后根据需求创建Sheet。 2. **添加Row和Cell**:在Sheet上添加Row,然后在Row中添加Cell。可以通过`Sheet.createRow(int ...
在提供的“java-excel导入导出”压缩包中,可能包含了示例代码、说明文档以及测试数据,可以帮助初学者快速理解和使用Java POI进行Excel操作。通过学习和实践这些示例,你可以掌握Java POI库的基本用法,并能灵活...
Apache POI是一个流行的API,专为处理Microsoft Office格式的文件,如Excel(.xlsx, .xls)。本教程将详细介绍如何使用POI库在Java中实现这一功能,并介绍所需的jar包。 首先,我们需要理解Apache POI的基本概念。...
在批量导入导出过程中,POI允许程序创建、修改和保存Excel文件,包括设置工作表、单元格的各种属性。例如,可以创建新的工作簿,添加工作表,设定单元格的值,设置单元格样式,甚至处理公式和图表。这使得Java应用...
总的来说,"SpringBoot + Mybatis + POI导入、导出Excel文件"的项目是一个实用的工具,可以帮助开发者快速实现数据交换功能,提高工作效率。通过理解SpringBoot的自动配置、Mybatis的SQL映射以及POI的Excel操作,...
1. **导出Excel**:首先,使用MyBatis执行SQL查询获取数据,然后通过POI创建一个Workbook对象,代表Excel工作簿。接着,创建Sheet对象表示工作表,并在其中添加Row和Cell来填充数据。最后,将Workbook写入到本地文件...
Java POI 是一个开源库,专门用于处理Microsoft Office格式的文件,尤其是Excel。在Java世界中,当你需要读取、写入或者修改Excel文件时,POI库是首选工具之一。下面将详细介绍如何使用Java POI对Excel进行导入和...
本篇文章将详细介绍如何利用SpringBoot和MyBatis结合Apache POI实现Excel的导入导出功能。 首先,SpringBoot是一个基于Spring框架的轻量级开发工具,它简化了新Spring应用的初始搭建以及开发过程。SpringBoot通过...
标题"利用poi实现导入导出Excel工具类"指出我们将探讨如何利用Apache POI来创建一个工具类,用于在Java应用程序中方便地进行Excel文件的导入和导出操作。 Apache POI库提供了HSSF(处理.xls文件)和XSSF(处理.xlsx...
在Java编程环境中,Apache POI库是一个非常实用的工具,它允许开发者读取、创建、修改Microsoft Office格式的文件,包括Excel...通过熟练掌握Apache POI,开发者可以方便地实现Excel的导入导出功能,提高工作效率。
标题中的“POI千万级导入导出EXCEL工具”指的是使用Apache POI库来处理大量数据的Excel导入和导出功能。Apache POI是Java语言中用于读写Microsoft Office格式档案的开源库,特别是Excel(XLS和XLSX)文件。在大数据...
Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式的文件,包括 Excel。这个实例主要探讨如何使用 Apache POI 库在 ...通过实践和不断学习,可以更熟练地运用 Apache POI 实现 Excel 文件的导入导出。
在"基于poi的excel导入导出封装"这个主题中,我们将深入探讨如何使用Apache POI库来实现Excel文件的导入和导出功能。 **一、Apache POI基本概念** 1. **工作簿(Workbook)**: 在Apache POI中,工作簿是Excel文件...
在"Java操作Excel之Poi模板导入导出"这个主题中,我们将深入探讨如何使用POI库来处理Excel模板,并进行数据的导入和导出。 首先,了解Excel模板的基本概念。模板通常包含预定义的样式、格式和计算,开发人员可以...