首页 > 代码库 > excel的导入导出的实现

excel的导入导出的实现

1.创建Book类,并编写set方法和get方法

 1 package com.bean;
 2 
 3 public class Book {
 4     private  int id;
 5     private  String name;
 6     private  String type;
 7 //    public int a;
 8 
 9     public  String getType() {
10         System.out.println("调用了类型方法");
11         return type;
12     }
13 
14     public void setType(String type) {
15         this.type = type;
16     }
17 //    public void test (String name,int a){
18 //        System.out.println("调用了多参数的方法");
19 //    }
20 
21     public  String getName() {
22         System.out.println("调用了名称方法");
23         return name;
24     }
25 
26     public void setName(String name) {
27         this.name = name;
28     }
29 
30     public  int getId() {
31         System.out.println("调用了序号方法");
32         return id;
33     }
34 
35     public void setId(int id) {
36         this.id = id;
37     }
38 
39 }

2.创建ExcelBook类实现导入导出

 1 package com.main;
 2 import java.io.File;
 3 import java.util.ArrayList;
 4 
 5 import com.bean.Book;
 6 
 7 import jxl.Cell;
 8 import jxl.Sheet;
 9 import jxl.Workbook;
10 import jxl.write.Label;
11 import jxl.write.WritableSheet;
12 import jxl.write.WritableWorkbook;
13 
14 public class ExcelBook {
15     public static void main(String[] args) {
16         ExcelBook excelBook = new ExcelBook();
17         //创建集合
18 //        ArrayList<Book> arrayList = new ArrayList<Book>();
19 //        Book book = new Book();
20 //        book.setId(1);
21 //        book.setName("Java语言");
22 //        book.setType("面向对象");
23 //        Book book1 = new Book();
24 //        book1.setId(2);
25 //        book1.setName("西游记");
26 //        book1.setType("故事");
27 //        Book book2 = new Book();
28 //        book2.setId(3);
29 //        book2.setName("高数");
30 //        book2.setType("难");
31 //        arrayList.add(book);
32 //        arrayList.add(book1);
33 //        arrayList.add(book2);
34 //        excelBook.excelOut(arrayList);
35         ArrayList<Book> ar1 = excelBook.excelIn();
36         for(Book bo2 : ar1){
37             System.out.println(bo2.getId()+" "+bo2.getName()+" "+bo2.getType());
38         }
39     }
40     public void excelOut(ArrayList<Book>arrayList){
41          WritableWorkbook bookk = null;//Excle对象
42          try {
43              //创建excel对象
44             bookk = Workbook.createWorkbook(new File("D:/Sourcecode/Java/fanshe/book.xls"));            
45             //通过excel对象创建一个选项卡
46           WritableSheet sheet = bookk.createSheet("sheet1", 0);
47           //创建一个单元格对象参数为   列 行 值
48           for(int i = 0; i < arrayList.size();i++){
49              Book bo = arrayList.get(i);
50              Label la1 = new Label(0, i,String.valueOf(bo.getId()));
51              Label la2 = new Label(1, i,bo.getName());
52              Label la3 = new Label(2, i, bo.getType());
53              sheet.addCell(la1);//放入选项卡中
54              sheet.addCell(la2);
55              sheet.addCell(la3);
56           }
57           
58           //写入目标路径
59           bookk.write();
60          } catch (Exception e) {
61             e.printStackTrace();
62         }finally{
63             try {
64                 bookk.close();
65             } catch (Exception e) {
66                 e.printStackTrace();
67             }
68         }
69          
70      }
71     public ArrayList<Book> excelIn(){
72         ArrayList<Book> ar = new ArrayList<Book>();//返回集合
73         Workbook book = null;
74         try {
75             //获取到excle对象
76             book = Workbook.getWorkbook(new File("D:/Sourcecode/Java/fanshe/book.xls"));//文件路径
77             Sheet sheet = book.getSheet(0);//获取第一个选项卡对象(第零列)
78             for(int i = 0; i < sheet.getRows();i++){//向文件中读入值,getRows()获取数据中有多少条数据
79                 Book bo = new Book();
80                 Cell cell = sheet.getCell(0,i);//cell对象为单元格对象,取出数据i行0列
81                 bo.setId(Integer.valueOf(cell.getContents()));//getContents获取单元格对象的值
82                 bo.setName(sheet.getCell(1,i).getContents());
83                 bo.setType(sheet.getCell(2,0).getContents());
84                 ar.add(bo);
85              }
86         } catch (Exception e) {
87            e.printStackTrace();
88         }finally{
89             book.close();
90         }
91         return ar;
92         
93     }
94 
95 }

运行结果:导出时,在指定路径出现下图内容

技术分享

导出时结果如下:

调用了序号方法
调用了名称方法
调用了类型方法
1 Java语言 面向对象
调用了序号方法
调用了名称方法
调用了类型方法
2 西游记 面向对象
调用了序号方法
调用了名称方法
调用了类型方法
3 高数 面向对象

此方法虽然可以实现excel的导入导出,但因导入导出的数据信息比较少,但如果数据信息比较多,此方法实现起来非常麻烦,所以应该利用java反射机制实现,在上一个随笔中已经介绍。

 

excel的导入导出的实现