一、下载jxl.jar包导入到工程中
http://download.csdn.net/detail/lrici/9758600
二、新建Book.Java
package com.cc.reflection; public class Book { private int id; private String name; private String type; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } }
package com.cc.utils; import java.io.File; import java.io.IOException; import java.lang.reflect.Field; import java.util.ArrayList; import javax.rmi.CORBA.Util; import com.cc.reflection.Book; import com.cc.reflection.ExcelBook; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; public class ExcelUtil { //通用的导出方法 public static void excelOut(ArrayList ar, String str) { WritableWorkbook bWorkbook = null; try { bWorkbook = Workbook.createWorkbook(new File(str)); WritableSheet sheet = bWorkbook.createSheet("sheet", 0); for (int i = 0; i < ar.size(); i++) { Object ob = ar.get(i); Class class1 = ob.getClass(); Field[] fields = class1.getDeclaredFields(); for (int j = 0; j < fields.length; j++) { fields[j].setAccessible(true); Label label = new Label(j, i, String.valueOf(fields[j].get(ob))); sheet.addCell(label); } } bWorkbook.write(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { bWorkbook.close(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //通用的导入方法 public static ArrayList excelIn(Class class1,String str){ ArrayList arrayList =new ArrayList(); Workbook bWorkbook =null; try { bWorkbook=Workbook.getWorkbook(new File(str)); Sheet sheet=bWorkbook.getSheet(0); Field[] fields=class1.getDeclaredFields(); for (int i = 0; i < sheet.getRows(); i++) { //不知道获取的对象是什么,所以用object来代替 Object object=class1.newInstance(); for (int j = 0; j < fields.length; j++) { fields[j].setAccessible(true); String string=sheet.getCell(j,i).getContents(); //如果获取的是一个字符串类型的数据 if(fields[j].getType().toString().equals("class java.lang.String")){ //将获取到的数据封装到object对象中 fields[j].set(object,string); }else if(fields[j].getType().toString().equals("int")){ fields[j].set(object,Integer.valueOf(string)); } } arrayList.add(object); } } catch (BiffException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { bWorkbook.close(); } return arrayList; } public static void main(String[] args) { // //将数据导出到Excel中 // ExcelBook book = new ExcelBook(); // ArrayList<Book> arrayList = new ArrayList<Book>(); // Book bo = new Book(); // bo.setId(1); // bo.setName("酒馆"); // bo.setType("生活"); // // Book bo1 = new Book(); // bo1.setId(2); // bo1.setName("酒馆1"); // bo1.setType("生活1"); // // arrayList.add(bo); // arrayList.add(bo1); // ExcelUtil.excelOut(arrayList, "D:/jiudina.xls"); //将Excel中的数据导入 ArrayList<Book> arrayList2 = ExcelUtil.excelIn(Book.class,"D:/jiudina.xls"); for (Book book1 : arrayList2) { System.out.println(book1.getName()+book1.getType()); } } }