码迷,mamicode.com
首页 > 其他好文 > 详细

使用JXL对Excel表格进行简单的操作

时间:2014-08-18 16:15:42      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   java   使用   os   io   

  前段时间由于项目的需求,要求使用JXL,做完之后做下记录,方便以后查看!

  首先我们要先下载JXL的JAR包:http://download.csdn.net/detail/u013352832/7777047

  将JXL.JAR 包导入到项目中即可直接只用!

  直接上代码

  使用JXL来操作Excel表格,我们应该首先判断一下Excel表格是否存在

  

1 File file = new File(user.getZkfp());
2 // 判断zkfp.xls文件是否存在,不存在则创建zkfp.xls文件,存在则进行修改
3 if (!file.exists() && !file.isDirectory()) {
4     //Excel表格不存在
5 } else {
6     //Excel表格已存在
7 }

 

  使用JXL创建Excel表格:

  

 1 package  test;
 2  
 3  // 生成Excel的类 
 4  import  java.io.File;
 5  
 6  import  jxl.Workbook;
 7  import  jxl.write.Label;
 8  import  jxl.write.WritableSheet;
 9  import  jxl.write.WritableWorkbook;
10  
11  public   class  CreateExcel  {
12       public   static   void  main(String args[])  {
13           try   {
14               //  打开文件 
15              WritableWorkbook book  =  Workbook.createWorkbook( new  File( " test.xls " ));
16               //  生成名为“第一页”的工作表,参数0表示这是第一页 
17              WritableSheet sheet  =  book.createSheet( " 第一页 " ,  0 );
18               //  在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
19               //  以及单元格内容为test 
20              Label label  =   new  Label( 0 ,  0 ,  " test " );
21  
22               //  将定义好的单元格添加到工作表中 
23              sheet.addCell(label);
24  
25               /* 
26               * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
27                */ 
28              jxl.write.Number number  =   new  jxl.write.Number( 1 ,  0 ,  555.12541 );
29              sheet.addCell(number);
30  
31               //  写入数据并关闭文件 
32              book.write();
33              book.close();
34  
35          }   catch  (Exception e)  {
36              System.out.println(e);
37          } 
38      } 
39  } 

如果想修改Excel表格的话,可以直接使用以上代码进行修改,先打开Excel表格,在获取工作表,就可以进行设置进行修改了。

在开发中有时候我们还需要读取Excel表格获取数据,代码如下:

 1 package  test;
 2  
 3  // 读取Excel的类 
 4  import  java.io.File;
 5  
 6  import  jxl.Cell;
 7  import  jxl.Sheet;
 8  import  jxl.Workbook;
 9  
10  public   class  ReadExcel  {
11       public   static   void  main(String args[])  {
12           try {
13              Workbook book  =  Workbook.getWorkbook( new  File( " test.xls " ));
14               //  获得第一个工作表对象 
15              Sheet sheet  =  book.getSheet( 0 );
16               //  得到第一列第一行的单元格 
17              Cell cell1  =  sheet.getCell( 0 ,  0 );
18              String result  =  cell1.getContents();
19              System.out.println(result);
20              book.close();
21          }   catch  (Exception e)  {
22              System.out.println(e);
23          } 
24      } 
25  } 

 

在实际开发中,我们还可能面临对已经有数据的Excel表格进行添加数据、添加工作表等操作,在添加数据时我们需要将数据添加到最后一行,而数据总共有多少行是我们需要获取到的,代码如下:

 1      /**
 2      * 添加数据     
 3      * @param numberno
 4      * @param route 路径
 5      * @param name
 6      */
 7     public void savwUser(String numberno, String route, String name) {
 8         try {
 9             // 打开文件
10             Workbook book = Workbook.getWorkbook(new File(route));
11             // 获得第一个工作表对象
12             Sheet sheet1 = book.getSheet(0);
13             // 获得第一个工作表对象
14             Sheet sheet2 = book.getSheet(1);
15             // 获取行
16             int length1 = sheet1.getRows();
17             int length2 = sheet2.getRows();
18 
19             // 根据book创建一个操作对象
20             WritableWorkbook wbook = Workbook.createWorkbook(new File(route),
21                     book);
22             // 得到一个工作对象
23             WritableSheet sh1 = wbook.getSheet(0);
24             WritableSheet sh2 = wbook.getSheet(1);
25 
26             // 创建用户表数据
27             jxl.write.Number user11 = new jxl.write.Number(0, length1, length1-1);
28             Label user12 = new Label(1, length1 + 1, numberno);
29             Label user13 = new Label(2, length1 + 1, route);
30             Label user14 = new Label(3, length1 + 1, name);
31             // 将用户表数据添加到用户表上
32             sh1.addCell(user11);
33             sh1.addCell(user12);
34             sh1.addCell(user13);
35             sh1.addCell(user14);
36             
37             // 创建时间表数据
38             jxl.write.Number label0 = new jxl.write.Number(0, length2,
39                     length2 - 1);
40             Label label = new Label(1, length2, numberno);
41             Label createDate = new Label(2, length2, df.format(new Date()));
42             // 将时间表数据添加到时间表上
43             sh2.addCell(label0);
44             sh2.addCell(label);
45             sh2.addCell(createDate);
46 
47             wbook.write();
48             wbook.close();
49 
50         } catch (Exception e) {
51             System.out.println(e);
52         }
53     }    


在使用JXL操作Excel表格时需要注意的是:我们在添加数据的时候数据要求最好入座,所以行和列要特别注意,在创建和获取工作表时是从下表0开始的!

插入时间数据时需要特别注意,我刚开始是直接new Date()获取时间插入数据,获取进行测试的时候,时间偏差很严重,后来就将时间格式化为字符串插入进去就解决了这一问题

格式化时间:

 1 // 设置日期格式 2 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3 df.format(new Date()) 

 

使用JXL对Excel表格进行简单的操作,布布扣,bubuko.com

使用JXL对Excel表格进行简单的操作

标签:style   blog   http   color   java   使用   os   io   

原文地址:http://www.cnblogs.com/yang-xiang/p/3919643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!