1.创建Book类,并编写set方法和get方法
package com.bean; public class Book { private int id; private String name; private String type; // public int a; public String getType() { System.out.println("调用了类型方法"); return type; } public void setType(String type) { this.type = type; } // public void test (String name,int a){ // System.out.println("调用了多参数的方法"); // } public String getName() { System.out.println("调用了名称方法"); return name; } public void setName(String name) { this.name = name; } public int getId() { System.out.println("调用了序号方法"); return id; } public void setId(int id) { this.id = id; } }
2.创建ExcelBook类实现导入导出
package com.main; import java.io.File; import java.util.ArrayList; import com.bean.Book; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class ExcelBook { public static void main(String[] args) { ExcelBook excelBook = new ExcelBook(); //创建集合 // ArrayList<Book> arrayList = new ArrayList<Book>(); // Book book = new Book(); // book.setId(1); // book.setName("Java语言"); // book.setType("面向对象"); // Book book1 = new Book(); // book1.setId(2); // book1.setName("西游记"); // book1.setType("故事"); // Book book2 = new Book(); // book2.setId(3); // book2.setName("高数"); // book2.setType("难"); // arrayList.add(book); // arrayList.add(book1); // arrayList.add(book2); // excelBook.excelOut(arrayList); ArrayList<Book> ar1 = excelBook.excelIn(); for(Book bo2 : ar1){ System.out.println(bo2.getId()+" "+bo2.getName()+" "+bo2.getType()); } } public void excelOut(ArrayList<Book>arrayList){ WritableWorkbook bookk = null;//Excle对象 try { //创建excel对象 bookk = Workbook.createWorkbook(new File("D:/Sourcecode/Java/fanshe/book.xls")); //通过excel对象创建一个选项卡 WritableSheet sheet = bookk.createSheet("sheet1", 0); //创建一个单元格对象参数为 列 行 值 for(int i = 0; i < arrayList.size();i++){ Book bo = arrayList.get(i); Label la1 = new Label(0, i,String.valueOf(bo.getId())); Label la2 = new Label(1, i,bo.getName()); Label la3 = new Label(2, i, bo.getType()); sheet.addCell(la1);//放入选项卡中 sheet.addCell(la2); sheet.addCell(la3); } //写入目标路径 bookk.write(); } catch (Exception e) { e.printStackTrace(); }finally{ try { bookk.close(); } catch (Exception e) { e.printStackTrace(); } } } public ArrayList<Book> excelIn(){ ArrayList<Book> ar = new ArrayList<Book>();//返回集合 Workbook book = null; try { //获取到excle对象 book = Workbook.getWorkbook(new File("D:/Sourcecode/Java/fanshe/book.xls"));//文件路径 Sheet sheet = book.getSheet(0);//获取第一个选项卡对象(第零列) for(int i = 0; i < sheet.getRows();i++){//向文件中读入值,getRows()获取数据中有多少条数据 Book bo = new Book(); Cell cell = sheet.getCell(0,i);//cell对象为单元格对象,取出数据i行0列 bo.setId(Integer.valueOf(cell.getContents()));//getContents获取单元格对象的值 bo.setName(sheet.getCell(1,i).getContents()); bo.setType(sheet.getCell(2,0).getContents()); ar.add(bo); } } catch (Exception e) { e.printStackTrace(); }finally{ book.close(); } return ar; } }
运行结果:导出时,在指定路径出现下图内容
导出时结果如下:
调用了序号方法
调用了名称方法
调用了类型方法
1 Java语言 面向对象
调用了序号方法
调用了名称方法
调用了类型方法
2 西游记 面向对象
调用了序号方法
调用了名称方法
调用了类型方法
3 高数 面向对象
此方法虽然可以实现excel的导入导出,但因导入导出的数据信息比较少,但如果数据信息比较多,此方法实现起来非常麻烦,所以应该利用java反射机制实现,在上一个随笔中已经介绍。