首页 > 代码库 > java反射学习之二万能EXCEL导出
java反射学习之二万能EXCEL导出
一、EXCEL导出的实现过程
假设有一个对象的集合,现在需要将此集合内的所有对象导出到EXCEL中,对象有N个属性;那么我们实现的方式是这样的:
循环这个集合,在循环集合中某个对象的所有属性,将这个对象的所有属性作为EXCEL的列,该对象占据EXCEL的一行
二、万能EXCEL导出(以JXL为例,jxl、poi等excel导入导出的jar包不做介绍了)
1、创建java工程、引入jxl的jar包
2、直接上代码
Book.java
/** * Book对象 * @author bwy * */public class Book { private String name; private double price; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public Book(String name, double price) { this.name = name; this.price = price; } }
excel工具类ExcelUtil.java
1 /** 2 * EXCEL工具类 3 * 4 * @author bwy 5 * 6 */ 7 public class ExcelUtil { 8 9 /**10 * excel导出方法11 * 12 * @param list13 * 导出的对象集合14 * @param filePath15 * 导出路径16 */17 @SuppressWarnings("rawtypes")18 public static void exportExcel(ArrayList list, String filePath) {19 20 // 创建workbook对象21 WritableWorkbook workBook = null;22 23 // sheet对象24 WritableSheet sheet = null;25 try {26 workBook = Workbook.createWorkbook(new File(filePath));27 sheet = workBook.createSheet("book", 0);28 29 // 循环该对象的集合30 for (int i = 0; i < list.size(); i++) {31 32 // 获取对象33 Object obj = list.get(i);34 35 // 获取对象的类36 Class cls = obj.getClass();37 38 // 获取该类的所有属性39 Field[] fis = cls.getDeclaredFields();40 41 // 循环类属性42 for (int j = 0; j < fis.length; j++) {43 44 // 设置私有属性访问权限,这一步很重要45 fis[j].setAccessible(true);46 47 // 创建label48 Label label = new Label(j, i, fis[j].get(obj).toString());49 50 // 放入到sheet中51 sheet.addCell(label);52 }53 }54 55 // 写文件56 workBook.write();57 } catch (Exception e) {58 e.printStackTrace();59 } finally {60 61 // 关闭流62 try {63 workBook.close();64 } catch (WriteException e) {65 e.printStackTrace();66 } catch (IOException e) {67 e.printStackTrace();68 }69 }70 }71 }
最后是测试类 ExcelExportTest.java
1 public class ExcelExportTest { 2 public static void main(String[] args) { 3 Book b1 = new Book("我和凤姐同居的日子",32.00); 4 Book b2 = new Book("HTML5开发手册",18.00); 5 Book b3 = new Book("thiking in java",90.0); 6 Book b4 = new Book("数据结构",22); 7 Book b5 = new Book("毛 泽 东思想",10); 8 9 ArrayList<Book> bookList = new ArrayList<Book>();10 bookList.add(b1);11 bookList.add(b2);12 bookList.add(b3);13 bookList.add(b4);14 bookList.add(b5);15 16 ExcelUtil.exportExcel(bookList,"c:/export.xls");17 }18 }
运行测试类,可以看到,在C盘根目录生成了export.xls文件
当然,这个导出的功能不是最完善的,只是通过这一功能去了解java反射的使用。
java反射学习之二万能EXCEL导出
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。