Java使用POI导出Excel工具类(反射)
来源:互联网 发布:import 引入js 编辑:程序博客网 时间:2024/06/16 13:36
pom.xml:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6</version> </dependency>
工具类:
import org.apache.poi.hssf.usermodel.*;import java.lang.reflect.Field;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Excel导出工具类 * @author 单继重 * @since 2017/11/23 16:44 */public class ExcelUtil { private static Map<String,String> exportFields = new HashMap<String, String>(); //初始化属性Map static { exportFields.put("name","活动名称"); exportFields.put("content","活动内容"); exportFields.put("population","活动人数"); exportFields.put("provideMeal","提供餐饮"); exportFields.put("provideHotel","提供住宿"); exportFields.put("organization","主办单位"); exportFields.put("tel","电话"); exportFields.put("qq","负责人qq"); exportFields.put("time","活动时间"); exportFields.put("budget","活动经费"); exportFields.put("certificate","活动证书"); exportFields.put("status","活动状态"); } /** * 获取Excel实体 * @param sheetName sheet名字 * @param list 对象集合 * @return Excel实体 * @throws IllegalAccessException 安全权限异常 */ public static HSSFWorkbook getHSSFWorkbook(String sheetName, List list) throws IllegalAccessException { //获取对象所有属性 Field[] fields = list.get(0).getClass().getDeclaredFields(); //表头数组 String[] title = new String[fields.length]; //设置表头 for (int i = 0 ; i < fields.length ; i ++) { //获取属性 Field field = fields[i]; //设置该属性可访问 field.setAccessible(true); //在属性Map中找到该属性对应表头 title[i] = exportFields.get(field.getName()); } // 第一步,创建一个workbook,对应一个Excel文件 HSSFWorkbook workbook = new HSSFWorkbook(); // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = workbook.createSheet(sheetName); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short HSSFRow row = sheet.createRow(0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = workbook.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 HSSFCell cell = null; //创建标题 for(int i=0;i < title.length;i++){ cell = row.createCell(i); cell.setCellValue(title[i]); cell.setCellStyle(style); } //创建内容 for(int i = 0 ; i < list.size() ; i ++) { row = sheet.createRow(i + 1); for(int j = 0 ; j < fields.length ; j ++) { Field field = fields[j]; field.setAccessible(true); String value = String.valueOf(field.get(list.get(0))); row.createCell(j).setCellValue(value); } } return workbook; }}
测试类:
import com.taiji.jilin.common.entity.Activity;import com.taiji.jilin.common.util.ExcelUtil;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.junit.Test;import java.io.*;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;/** * @author 单继重 * @since 2017/11/23 13:58*/public class ExcelTest { @Test public void test () throws Exception { String fileName = "test.xls"; String sheetName = "sheet1"; List<Activity> activities = new ArrayList<Activity>(); for (int i = 0 ; i < 10 ; i ++ ) { Activity activity = new Activity(); activity.setName("名称"); activity.setContent("内容"); activity.setCertificate("证书"); activity.setIsFinish(1); activity.setBudget("预算"); activity.setId(123); activity.setOrganization("组织"); activity.setPopulation(123456); activity.setProvideHotel("是"); activity.setProvideMeal("餐饮"); activity.setQq("QQ"); activity.setTel("电话"); activity.setTime("时间"); activity.setStatus("啊啊啊"); activities.add(activity); } HSSFWorkbook hssfWorkbook = ExcelUtil.getHSSFWorkbook(sheetName,activities); File file = new File("F:\\Shanjz" + fileName); OutputStream outputStream = null; try { outputStream = new FileOutputStream(file); hssfWorkbook.write(outputStream); outputStream.flush(); outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
阅读全文
0 0
- Java使用POI导出Excel工具类(反射)
- poi 导出Excel 使用工具类
- Java web 导出Excel (使用POI)
- poi 导出Excel 工具类
- POI导出Excel工具类
- poi导出Excel工具类
- poi导出excel工具类
- Java 使用反射和Poi将任意类导出为Excel
- Java使用POI导出Excel
- 使用工具类 使用poi导入导出excel报表
- 使用POI插件,提取导出excel的工具类
- POI导出Excel模板工具类(使用jxls)
- java poi导出与导入excel 工具类
- POI工具类,常用java操作导出Excel
- java简易excel导入导出工具(封装POI)
- java简易excel导入导出工具(封装POI)
- java使用poi导出Excel(Excel为双标题)
- POI导出Excel工具
- 【AI英雄风云榜】为TA投票:谁是2017中国AI领域最牛的人?
- linux shell命名管道FIFO(多进程动态并发)
- Json
- 详解聊天机器人:它会让人类工作变得多余吗? | 行业
- 利用onNewIntent避免Activity之间的跳转传值多次实体化
- Java使用POI导出Excel工具类(反射)
- CCF CSP 201503-1 图像旋转
- Java并发编程与技术内幕:消费者-生产者模式研究
- 百度地图API去获取当前用户地理位置,不过一般都不能很精确的,百度地图的定位都是有偏移量的。
- ubuntu so make
- svn服务器配置
- 七牛云上传--官方JSDK与photoClip截图Base64编码
- 16如何处理不均衡数据
- 用例图、类图与时序图的关系