Java 导出Excel方法一
2016-03-07 15:01
495 查看
/** * 功能说明: 导出Excel */ public class ExcelUtils { /** * 功能描述:导出Excel表格方法一(以Object的形式导出) * * * @param list * @param headers */ public static void exportExcel(HttpServletResponse response, String fileName, List<?> list, String[] colums, String[] headers, String dateFormat) throws Exception { int rowIndex = 0; Workbook workbook = new HSSFWorkbook(); // 创建一个工作簿 Sheet sheet = workbook.createSheet(); // 创建一个Sheet页 sheet.autoSizeColumn((short) 0); // 单元格宽度自适应 Row row = sheet.createRow(rowIndex++); // 创建第一行(头部) CreationHelper helper = workbook.getCreationHelper(); CellStyle style = workbook.createCellStyle(); // 设置单元格样式 style.setDataFormat(helper.createDataFormat().getFormat(dateFormat)); // 格式化日期类型 for (int i = 0; i < headers.length; i++) { // 输出头部 row.createCell(i).setCellValue(headers[i]); } for (Object obj : list) { List<Object> values = ExcelUtils.getFieldValuesByNames(colums, obj); row = sheet.createRow(rowIndex++); for (int j = 0; j < values.size(); j++) { row.createCell(j).setCellValue(values.get(j).toString()); } } String ddate = new SimpleDateFormat("yyyyMMddhhmmss").format(Calendar .getInstance().getTime()); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes("gb2312"), "iso8859-1") + "_" + ddate + ".xls");// 设定输出文件头 OutputStream output = response.getOutputStream(); workbook.write(output); output.flush(); output.close(); } public static List<Object> getFieldValuesByNames(String[] fieldNames, Object o) { List<Object> list = new ArrayList<Object>(); try { Class<?> clz = o.getClass(); for (String fieldName : fieldNames) { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + fieldName.substring(1); Method method = clz.getMethod(getter, new Class[] {}); Object value = method.invoke(o, new Object[] {}); list.add(value); } return list; } catch (Exception e) { return null; } } }
相关文章推荐
- Java5实现阻塞队列
- eclipse运行Android项目出现“The connection to adb is down, and a severe error has occured. You must restart adb and Eclipse. ”
- java XML转JSON格式
- java的定时器功能
- mac os intellij如何快路查看一个java类的所有方法,结构
- java中的继承
- java解析xml的几种方式
- java抽象类和接口区别
- 升级hibernate>4,spring>3.1笔记
- R.Java文件报错
- Java JPA知识的理解与总结
- java环境配置正确,但是ecplise打不开,提示java虚拟机找不到
- java实现的第三方线程池框架
- Spring配置 <context:component-scan/> <mvc:annotation-driven />
- leetcode:Binary Tree Level Order Traversal II 【Java】
- 谈谈eclipse使用技巧一
- Eclipse下Android SDK无法安装或更新的解决方法
- Mac java环境配置
- java的基本认识
- Java 集合