POI Excel 导出工具类
package com.hengyu.ticket.util; import java.util.List; import java.util.Map; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFFont; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * excel处理 * @author LGF * 2015-12-21 */ public class ExcelHanlder { //默认高度 private static short DEFAULT_ROW_HEIGHT = 400; //默认宽度 private static int DEFAULT_CELL_WIDTH = 3000; /** * * @param book 工作簿对象,【可选】 * @param hanlder 自定义类型处理【可选】 * @param titles 标题 * @param columns 列名(Map类型处理,自定义可选) * @param columnsWidth 宽度 * @param height 行高 * @param sheetTitle 表标题 * @param datas 数据 * @return */ @SuppressWarnings("all") public static XSSFWorkbook exportExcel(XSSFWorkbook book,ExcelTypeHanlder hanlder,String[] titles,String[] columns ,Integer[] columnsWidth,Short height,String sheetTitle,List datas){ if(book==null){ book = new XSSFWorkbook(); } int size = DEFAULT_CELL_WIDTH; //列大小 if(columnsWidth!=null&&columnsWidth.length==1){ size = columnsWidth[0]; } if(height==null){ height = DEFAULT_ROW_HEIGHT; } XSSFSheet sheet = book.createSheet(sheetTitle); int rowindex = 0; XSSFRow firstrow = sheet.createRow(rowindex); rowindex++; sheet.setDefaultColumnWidth(size); firstrow.setHeight(height); XSSFFont font = book.createFont(); font.setBold(true); XSSFCellStyle cellstyle = book.createCellStyle(); cellstyle.setFont(font); cellstyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER); //标题 if(titles!=null){ int index = 0; for (String title : titles) { XSSFCell cell = firstrow.createCell(index); cell.setCellStyle(cellstyle); cell.setCellValue(title); //列宽度设置 if(columnsWidth==null||columnsWidth.length==0||columnsWidth.length==1){ sheet.setColumnWidth(cell.getColumnIndex(), size); }else{ if((columnsWidth.length-1)>=index){ sheet.setColumnWidth(cell.getColumnIndex(), columnsWidth[index]==null?size:columnsWidth[index]); }else{ sheet.setColumnWidth(cell.getColumnIndex(), size); } } index++; } } if(datas==null){ return book; } //写入数据 for (Object data : datas) { //map 类型处理 if(data instanceof Map){ Map<String,Object> map = (Map<String, Object>) data; XSSFRow row = sheet.createRow(rowindex); int i = 0; for (String column : columns) { XSSFCell cell = row.createCell(i); Object val = map.get(column); if(hanlder!=null&&val==null){ Object temp = hanlder.dataNullHander(column,map); cell.setCellValue(temp!=null?temp.toString():""); }else{ cell.setCellValue(val!=null?val.toString():""); } i++; } row.setHeight(DEFAULT_ROW_HEIGHT); rowindex++; }else{ //其他处理 if(hanlder!=null){ Object obj = data; XSSFRow row = sheet.createRow(rowindex); hanlder.typeHanlder(data, row); rowindex++; } } } return book; } /** * * @param book 工作簿对象,【可选】 * @param titles 标题 * @param columns 列名(Map类型处理,自定义可选) * @param sheetTitle 表标题 * @param datas 数据 * @return */ public static XSSFWorkbook exportExcel(XSSFWorkbook book,String[] titles,String[] columns,String sheetTitle,List<Map<String,String>> datas){ return exportExcel(book, null, titles, columns,null,null, sheetTitle, datas); } /** * @param titles 标题 * @param columns 列名(Map类型处理,自定义可选) * @param sheetTitle 表标题 * @param datas 数据 * @return */ @SuppressWarnings("all") public static XSSFWorkbook exportExcel(String[] titles,String[] columns,String sheetTitle,List<Map<String,String>> datas,ExcelTypeHanlder hanlder){ return exportExcel(null, hanlder, titles, columns,null,null, sheetTitle, datas); } public static XSSFWorkbook exportExcel(String[] titles,String[] columns,String sheetTitle,List<Map<String,String>> datas){ return exportExcel(null, null, titles, columns,null,null, sheetTitle, datas); } //自定义处理对象回调 public static abstract class ExcelTypeHanlder<T>{ //类型处理 public void typeHanlder(T data,XSSFRow row){ } //空数据处理 public Object dataNullHander(String column,T obj){ return null; } } }
相关推荐
基于poi开发的excel导出工具类,一种无样式优化导出,一种自适应cell宽度导出
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
Poi导出Excel工具类 支持大数据量 多sheet页方式 已经封装好,直接拿来调用里面的方法传入参数就行 很简单
基于poi的excel导入导出封装,poi版本 <groupId>org.apache.poi <artifactId>poi <version>4.1.0 <groupId>org.apache.poi <artifactId>poi-ooxml <version>4.1.0 </dependency>
概述:Java poi导入导出EXCEL工具类(兼容各版本) 一、功能说明 允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见...
POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格
java的poi的导入工具类,只需要传入两个arrayList,一个是execl的标题,一个是ececl的数据,就可以直接导出到execl里面,支持最新的execl,全新封装的,让每一个人都会使用poi导出execl!
自己写一个可直接导出List<Object>数据的Excel工具类,使用起来很方便。
String outputFile = "D:\\excel\\excel.xlsx"; OutputStream outputStream = new FileOutputStream(outputFile); UtilExcel utilExcel = new UtilExcel(); String titles = "所属区域,所属车间,当前处理人,描述...
poi导出excel工具类,亲测可用
食用指南 https://blog.csdn.net/weixin_44067399/article/details/107974673 本工具为基于POI封装的一个工具类,旨在提高开发效率,供学习交流用 使用本工具的前提是安装了POI
改资源包含 数据量超过20万以上导出解决方案,还有动态获取数据公共类 1) 把数据分成多个sheet导出。 2) 把数据分成多个excel 导出。 全部都有,还有实例。
poi导入,导出封装工具类,支持多sheet,将Excel数据读取放入泛型集合中,由于Excel对数据的判断比较麻烦,此工具类可以只读取正确的Excel数据,错误的数据会在Excel数据列后一列,提示错误信息,当然错误信息需要自己...
利用poi导入导出Excel xls,xlsx
Excel导入导出 jxl及Poi 工具类:jxl 实现 及 Poi实现 非常实用
我们也使用 ExcelExportUtil 工具类来将数据导出到 Excel 文件中。 这个例子展示了如何使用 SpringMVC 框架和 POI 库来生成 Excel 文件,并将其导出。这是一个非常有用的技术点,广泛应用于商业系统和数据分析等...
使用poi导出excel支持xls、xlsx格式大数据导出java工具类,支持同一个单元格不同文本格式。找了好久,加上自己修改后,调试通过,发布出来分享,(调整student类位置)包含所需jar包,工具类,使用示例
文件包含了 1.POI导入导出的工具类; 2.图片URL导出成图片文件; 3.导出excel和图片压缩包格式文件。 如果下载后有任何问题,可以联系我哦!
excel导入导出(poi工具类)
POI 导出Excel工具类,包含POIjar包,仅供参考,多多提改善意见