下面是对poi导出excel的封装,稍微改动一下就能用于其它项目
pojo类见http://liudeh-009.iteye.com/blog/1847626的Student类
Excel导出类:
/** * * 类ExportBookOrderTool.java的实现描述:学生数据报表导出工具类 * @author liudeh_009 2012-11-5 下午02:34:03 */ public class ExportStudentDataTool { private HSSFWorkbook workbook; private HSSFSheet sheet; private HSSFCellStyle cellStyle; public ExportStudentDataTool(){ workbook = new HSSFWorkbook(); sheet = workbook.createSheet(); workbook.setSheetName(0, "学生数据报表"); Font font = workbook.createFont(); font.setColor(HSSFColor.RED.index); cellStyle = workbook.createCellStyle(); cellStyle.setFont(font); } public void exportExcel(List<Student> Students,HttpServletResponse response){ createSheetTitle(sheet); int sumCount = createSheetCotent(Students,sheet); totalToExport(sheet,sumCount); exportExcel2Client(workbook,response); } /** * 输出excel的标题行 * @param sheet */ private void createSheetTitle(HSSFSheet sheet){ int cellCount=0; HSSFRow row = sheet.createRow(0); HSSFCell cell = row.createCell(cellCount++,1); cell.setCellValue("ID");//忽视的列 cell = row.createCell(cellCount++,1); cell.setCellValue("姓名"); cell = row.createCell(cellCount++,1); cell.setCellValue("年龄"); } /** * 输出excel的主体内容 * @param Students * @param sheet * @param count * @param userId * @return */ private int createSheetCotent(List<Student> Students,HSSFSheet sheet){ int sumRow = 0; //共导出多少条 HSSFCell cell = null; HSSFRow row = null; for(Student student : Students){ if (student == null) { continue; } int cellCount=0; sumRow++; row = sheet.createRow(sumRow); cell = createCell(sumRow,row,cellCount++, 1); cell.setCellValue(student.getId());//忽视的列 cell = createCell(sumRow,row,cellCount++, 1); cell.setCellValue(student.getName());//预约流水号 cell = createCell(sumRow,row,cellCount++, 1); cell.setCellValue(student.getAge());//订单标号 } return sumRow; } /** * 偶数行字体增加颜色 * @param Student * @param row * @param location * @param size * @return */ @SuppressWarnings("deprecation") private HSSFCell createCell(int sumRow,HSSFRow row,int location, int size){ HSSFCell cell = row.createCell(location,size); if(sumRow%2==0){ cell.setCellStyle(cellStyle); } return cell; } /** * 总共行 * @param sheet * @param totalCount */ private void totalToExport(HSSFSheet sheet,int totalCount){ HSSFRow row = sheet.createRow(totalCount + 2); HSSFCell cell = row.createCell(1,1); cell.setCellValue("总共"); cell = row.createCell(2,1); cell.setCellValue(Integer.toString(totalCount)); } @SuppressWarnings("unused") private void exportExcel2Client(HSSFWorkbook workbook,HttpServletResponse response){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String nowDate = sdf.format(new Date()); String fileName = "attachment; filename=学生数据报表-"+nowDate+".xls"; OutputStream out = null; try { response.setHeader("Content-disposition",new String(fileName.getBytes("gbk"),"ISO-8859-1")); response.setContentType("application/msexcel;charset=GBK"); out = response.getOutputStream(); workbook.write(out); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); }finally{ if(out!=null){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
调用方式非常简单.只需传学生的列表对象stList和response对象,如下:
ExportStudentDataTool exportStudentDataTool = new ExportStudentDataTool(); exportStudentDataTool.exportExcel(stList, response);
导出最终excel表格内容如下:
最后要注意,一个sheet的记录行数不能超过65535,超过这个数就要考虑创建多个sheet或者多个excel文件
相关推荐
用于导入导出Excel,方便好用 支持动态用流写至客户端
本文将深入探讨如何使用ITEXT库导出PDF和Word,以及利用Apache POI库导出Excel报表文件。 首先,让我们来了解ITEXT库。ITEXT是一个开源Java库,专门用于创建和修改PDF文档。使用ITEXT,你可以方便地生成包含文本、...
### JAVA POI 导出 EXCEL 报表的操作详解(含格式及样式实现) #### 一、概述 在日常工作中,我们经常会遇到需要将数据导出到 Excel 的情况,尤其是在处理大量的报表数据时。Java POI 库为 Java 开发者提供了一种...
以下是关于POI导出Excel表格的相关知识点的详细解释。 1. **Apache POI库**: Apache POI 是一个开源项目,它提供了一组API用于读写Microsoft Office格式的文件,如Excel(XLS,XLSX),Word(DOC,DOCX)和...
在这个“POI报表导出excel”的案例中,我们将深入探讨如何使用POI 3.6版本来实现报表的导出,包括设置Excel样式、合并单元格以及处理多表头的合并。 首先,我们需要了解Apache POI的核心组件:HSSFWorkbook(用于...
ExportExcel类为导出Excel报表通用类。 1.将源代码导入eclipse中 2.部署项目,启动tomcat服务器 3.web页面具体路径:http://localhost:80/poi 4.点击Read excel 2003 or 2007,可以读取2003或2007版Excel 5.点击...
POI导出Excel参考方法 POI(Poor Obfuscation Implementation)是一个Java的API,用于操作Microsoft Office文档,包括Excel、Word、PowerPoint等。下面是POI导出Excel参考方法的相关知识点: 1. POI的基本概念 ...
通过以上步骤,我们成功地实现了使用Apache POI在Java中导出Excel文件,并实现了自动换行的功能。这种方式不仅可以提高工作效率,还能确保数据的准确性和完整性。 #### 六、注意事项与优化建议 - **兼容性问题**:...
在使用Apache POI导出Excel时,首先需要创建一个`XSSFWorkbook`对象作为工作簿,然后通过工作簿创建`XSSFSheet`对象代表工作表。例如: ```java XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet =...
这个链接提供了一个详细的Java代码示例,演示了如何使用POI导出Excel。在实际开发中,你可以根据这个示例调整代码以满足自己的需求,比如添加更多的数据处理逻辑或自定义样式。记得在导入项目时,确保包含上述提到的...
4. **导出Excel**:最后,`jxls-poi`会生成一个新的Excel文件,其中包含了从JSON数据填充后的内容。你可以选择保存到本地或者直接通过HTTP响应发送给用户下载。 具体代码示例可能如下: ```java import org.jxls....
这篇博客文章“Apache POI 导出excel实例”将深入探讨如何使用Apache POI库来生成Excel文件,这对于在Java环境中处理大量数据并需要导出为Excel格式的应用非常有用。 首先,我们需要导入Apache POI库到我们的项目中...
学习和理解这些知识点对于开发需要处理Excel文件的Java应用至关重要,特别是在数据导入导出、报表生成、自动化测试等领域。通过实践这些示例,开发者能够掌握如何利用Apache POI高效地生成和操作Excel 2007文件,...
这样,你就可以利用Apache POI提供的API来创建复杂的Excel报表,比如设置单元格的值、格式、公式,合并单元格,插入图表,应用条件格式等等。同时,Apache POI还支持读取已有的Excel文件,方便进行数据导入、分析和...
本项目通过Apache POI实现了Excel的导入与导出功能,并在操作过程中加入了进度条展示,增强了用户体验。 首先,Apache POI的核心类HSSFWorkbook和XSSFWorkbook分别用于处理老版本的.xls和新版本的.xlsx文件。在导入...
"根据poi导出excel能够正确运行"这个标题表明我们将讨论一个成功的POI实现,使得程序能够生成并正确运行Excel文件。 首先,我们需要理解Apache POI的基本概念。它提供了HSSF(Horizontally Stored Spreadsheet ...
以下是一个简单的使用Apache POI导出Excel的工作流程示例: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java....
### POI生成Excel报表知识点详解 #### 一、Apache POI简介 Apache POI是Apache软件基金会的一个开源项目,主要用于处理Microsoft Office格式的文件。它提供了API来读写Word、Excel等Office文档格式。其中,处理...