package com.hynt.project.util.excel; import java.io.FileOutputStream; import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell; 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.ss.util.Region; public class ExcelServiceImpl implements ExcelService { private int rowSize; public int getRowSize() { return rowSize; } public void setRowSize(int rowSize) { this.rowSize = rowSize; } public void toExcel(Map<String, Object> data) throws Exception { String title = (String)data.get("title"); String[] headers = (String[])data.get("headers"); List<Object[]> rows = (List<Object[]>)data.get("rows"); String filePath = (String)data.get("filePath"); String sheetName = (String)data.get("sheetName"); // 第一步,创建一个webbook,对应一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = null; int index = 1;//工作表序号 HSSFRow row = null;//工作表行 HSSFCell cell = null;//工作表列 int rowIndex = 0;//工作表行号 Object[] rowdata = null;//数据行 for(int i=0;i<rows.size();i++){ if(i%rowSize == 0){ sheet = wb.createSheet(sheetName +"_"+ (index++)); rowIndex = 0; } if(rowIndex == 0){//创建标题 row = sheet.createRow(rowIndex); cell = row.createCell(0); cell.setCellValue(title); sheet.addMergedRegion(new Region(0, (short)0, 0, (short)(headers.length-1))); rowIndex ++ ; } if(rowIndex == 1){//创建列名 row = sheet.createRow(rowIndex); for(int j=0;j<headers.length;j++){ cell = row.createCell(j); cell.setCellValue(headers[j]); } rowIndex ++ ; } //写入数据行 rowdata = rows.get(i); row = sheet.createRow(rowIndex); for(int k = 0;k<rowdata.length;k++){ cell = row.createCell(k); cell.setCellValue((String)rowdata[k]); } rowIndex++ ; } // 最后,将文件存到指定位置 try { FileOutputStream fout = new FileOutputStream(filePath); wb.write(fout); fout.close(); } catch (Exception e) { e.printStackTrace(); } } }
测试:
public void toExcel(ServletContextEvent event){ Map<String,Object> data = new HashMap<String, Object>(); data.put("title", "学生基本信息表"); data.put("headers", new String[]{"学号","姓名","班级","自我介绍","性别","爱好","备注"}); data.put("filePath", "d:\\stu.xls"); data.put("sheetName", "学生"); List<Object[]> rows = new ArrayList<Object[]>(); Object[] row = null; for(int i = 0;i<200000;i++){ row = new Object[7]; row[0] = new String("1000"+i); row[1] = new String("蓉"+i); row[2] = new String("就发飞机分付金额飞机二纺机二姐夫金额付金额分付金额付金额"+i); row[3] = new String("飞机分块减肥额咖啡金额咖啡机额看风景而非吉尔克分进风口付金额客服吉尔克复健科佳蓉"+i); row[4] = new String("菲菲将飞机飞额看风景额咖啡金额咖啡机额看风景额看风景儿科付金额客服就额客服戒咖啡将额看风景额看风景儿科付金额开付金额开付金额佳蓉"+i); row[5] = new String("汤风景妇科飞机额看风景儿科付金额客服额块减肥额块减肥额块减肥儿科监控 蓉"+i); row[6] = new String("阿飞affect分解符科技法额付金额咖啡金额疯狂饥饿疯狂饥饿付金额开付金额看飞机额咖啡金额咖啡机额咖啡金额咖啡机额客服额块减肥额看风景佳蓉"+i); rows.add(row); } data.put("rows", rows); WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(event.getServletContext()); ExcelService excelService = (ExcelService)ctx.getBean("excelService"); try { excelService.toExcel(data); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("excel导出失败!"); } }
相关推荐
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
这可能是提供的代码库或工具包的名称,其中包含了处理 Excel 导出的类和方法。这个库可能包含了一些通用的辅助函数,如数据转换、样式设置、模板解析等功能,简化了开发者的工作。 总结来说,"poi-excel-handler" ...
POI导出Excel参考方法 POI(Poor Obfuscation Implementation)是一个Java的API,用于操作Microsoft Office文档,包括Excel、Word、PowerPoint等。下面是POI导出Excel参考方法的相关知识点: 1. POI的基本概念 ...
利用POI实现Java导出Excel表格,为了实现以后通用,做成了一个利用Java的反射机制做成的万金油式工具类,只需要给工具类传入固定的几个参数(映射字段的map集合,数据集合,实体类的Claas等),就可以实现导出Excel,该...
通用类的Java导出Excel方法,导出内容是使用json传递,字段描述使用ArrayList数组传递,
总结,"poi导入导出Excel通用工具类 兼容xls,xlsx"这个工具实现了利用Apache POI库处理Excel文件的功能,涵盖了从旧版的.xls到新版的.xlsx格式,提供了方便的导入和导出接口,使得在Java开发中处理Excel数据变得...
以下是一个简单的使用Apache POI导出Excel的工作流程示例: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java....
同样,导出Excel功能可以通过创建一个新的工作簿,填充数据,然后设置样式和写入输出流来实现。以下是一个简单的导出示例: ```java @GetMapping("exportList") public void exportList(HttpServletResponse ...
本篇将深入探讨"Excel POI 工具类",这个工具类旨在简化日常的Excel操作,提升开发效率。 Apache POI 提供了HSSF(Horizontally Stored Sheets Format)和XSSF(XML Spreadsheet Format)两个主要的API,分别用于...
### POI 控制 Excel 导出详解 #### 一、引言 Apache POI 是一个用于读写 Microsoft Office 格式文件(如 .xls、.xlsx、.doc、.ppt 等)的 Java API。其中,HSSF 和 XSSF 分别对应处理 .xls 和 .xlsx 文件。本篇...
SpringBoot整合POI导出通用Excel的方法不仅提高了开发效率,而且减少了重复性工作。在实践中,我们需要注意对POI库版本的选择,以及对Excel文件格式的兼容性处理。通过本文的介绍和示例代码,相信你已经掌握了使用...
在导出Excel时,你需要创建一个工作簿(Workbook)对象,然后添加工作表(Sheet),并在工作表中创建行(Row)和单元格(Cell)。数据可以从数据库、集合或其他数据源填充到这些单元格中。以下是一个简单的例子: `...
标题 "poi导出excel并下载工具类(含有demo)" 提供了我们即将讨论的核心内容:使用Apache POI库来创建Excel文件,并提供一个下载功能。Apache POI是Java领域中广泛使用的库,用于处理Microsoft Office格式的文件,...
为了导出 Excel,我们需要使用 POI 提供的 `HSSFWorkbook` 类来创建工作簿,`HSSFSheet` 类来创建工作表,以及 `HSSFRow` 和 `HSSFCell` 类来创建行和单元格。以下是一个简化的导出过程: 1. 创建 `HSSFWorkbook` ...
在Java开发中,Apache POI库是处理Microsoft Office文件(如Word、Excel)的强大工具。本文将深入探讨如何使用Java POI生成带有货币格式的Excel文件,这在财务报告和其他需要精确货币显示的应用场景中尤为关键。 ##...
ExportExcel类为导出Excel报表通用类。 1.将源代码导入eclipse中 2.部署项目,启动tomcat服务器 3.web页面具体路径:http://localhost:80/poi 4.点击Read excel 2003 or 2007,可以读取2003或2007版Excel 5.点击...
标题“poi导入导出Excel源码”和描述涉及到的核心知识点是利用Apache POI进行Excel文件的导入与导出操作。 首先,让我们详细了解Apache POI库。Apache POI是Apache软件基金会的一个开源项目,其主要目标是创建Java ...
标题中的“poi导出csv文件”指的是使用Apache POI库来生成CSV(逗号分隔值)文件。Apache POI是Java中一个流行的库,它主要用于处理Microsoft Office格式的文件,如Excel。在这个场景中,我们将探讨如何使用POI来...
在描述中提到的"POI导出.pdf,.doc,.xls,.jpg四种格式通用组件",意味着该组件不仅限于处理Microsoft Office文档,还支持生成PDF和图像文件(如.jpg),实现了多种文件格式间的转换和导出。 1. **Apache POI 概述**...