一、下载jxl.jar包导入到工程中
http://download.youkuaiyun.com/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;
}
}
三、新建ExcelUtil.java
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());
}
}
}
四、点击运行,需要保证D盘有jiudina.xls 文件且文件中内容符合Book.java的对应类型