在进行测试之前,首先在网上下载jxl.jar文件,放到classpath路径下或者放到你的工程中(效果一样,其实就是要在classpath能够找到这个jar包)
好了,下面现在开始做例子
第一步:创建excel文件 CreateExcel.java
- <pre name="code" class="java">package com.lrb.jxl.test;  
-   
- import java.io.File;  
-   
- import jxl.Workbook;  
- import jxl.write.Label;  
- import jxl.write.Number;  
- import jxl.write.WritableSheet;  
- import jxl.write.WritableWorkbook;  
-   
- public class CreateExcel {  
-       
-     public static void main(String[] args) {  
-         try{  
-             //创建并打开文件c:\\test.xls  
-             WritableWorkbook book = Workbook.createWorkbook(new File("C:\\test.xls"));  
-             //生成名为“第一页”的工作表,参数0表示这是第一页  
-             WritableSheet sheet  = book.createSheet("第一页", 0);  
-             //在Label对象的构造子中指名单元格位置是第一行第一列(0,0)  
-             //以及单元格内容“test”  
-             Label l = new Label(0,0,"test");  
-             //l.setString("this is name");  设置此格内容  
-             //将定义好的单元格添加到工作表中  
-             sheet.addCell(l);  
-             /** 
-              * 生成一个保存数字的单元格  
-              * 必须使用Number的完整包路径,否则有语法歧义  
-              * 单元格位置是第二列,第一行,值为3.1415926 
-              */  
-             Number number = new Number(1,0,3.1415926);  
-             sheet.addCell(number);  
-             book.write();  
-             book.close();  
-         }catch (Exception e) {  
-             e.printStackTrace();  
-         }  
-     }  
-   
- }  
- package com.lrb.jxl.test;  
-   
- import java.io.File;  
-   
- import jxl.Workbook;  
- import jxl.write.Label;  
- import jxl.write.WritableCellFormat;  
- import jxl.write.WritableFont;  
- import jxl.write.WritableSheet;  
- import jxl.write.WritableWorkbook;  
- import jxl.write.WritableFont.FontName;  
-   
- public class UpdateExcel {  
-   
-     public static void main(String[] args) {  
-         try {  
-             //excel获得文件  
-             Workbook wb = Workbook.getWorkbook(new File("C:\\test.xls"));  
-             //打开一个文件的副本,并且指定数据写回到原文件  
-             WritableWorkbook book = Workbook.createWorkbook(new File("c:\\test.xls"),wb);  
-             //添加一个工作表  
-             //WritableSheet sheet = book.createSheet("second sheet",1);  
-             WritableSheet sheet = book.getSheet("second sheet"); //用于第二次读取使用  
-             /** 
-              * 单元格操作 
-              */  
-             //合并单元格操作(合并第一列第一行到第一列第六行的所有单元格)。合并后的单元格不能再次进行合并,否则会触发异常  
-             sheet.mergeCells(0, 0, 0, 5);  
-             //设置第一行的高度为200  
-             sheet.setRowView(0, 200);  
-             //设置第一列的宽度为20  
-             sheet.setColumnView(0, 30);  
-             /** 
-              * 字符串格式化操作 
-              */  
-             //指定字串格式:字体为TIMES,字号16,加粗显示  
-             WritableFont font = new WritableFont(WritableFont.TIMES,12,WritableFont.BOLD);  
-             //WritableCellFormat 指定单元格的各种属性  
-             WritableCellFormat format1 = new WritableCellFormat(font);  
-             // 把水平对齐方式指定为居中   
-             format1.setAlignment(jxl.format.Alignment.CENTRE);  
-             // 把垂直对齐方式指定为居中   
-             format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);  
-             //Label类的构造子,指定了字串被赋予那种格式  
-             sheet.addCell(new Label(0,0,"第二页测试数据",format1));  
-             book.write();  
-             book.close();  
-         } catch (Exception e) {  
-             e.printStackTrace();  
-         }  
-   
-     }  
-   
- }  
第三步:读取excel打印   ReadExcel.java- <span style="font-size:10px;">package com.lrb.jxl.test;  
-   
- import java.io.File;  
- import java.io.IOException;  
- import java.text.SimpleDateFormat;  
-   
- import jxl.Cell;  
- import jxl.CellType;  
- import jxl.DateCell;  
- import jxl.NumberCell;  
- import jxl.Sheet;  
- import jxl.Workbook;  
- import jxl.read.biff.BiffException;  
-   
- public class ReadExcel {  
-   
-     public static void main(String[] args) throws BiffException, IOException {  
-         //打开文件  
-         Workbook book = Workbook.getWorkbook(new File("C:\\test.xls"));  
-         //获得第一个工作表对象  
-         Sheet sheet = book.getSheet(0);  
-         //如果知道工作表的名字,也可使用如下方法获得指定名称的工作表对象  
-         Sheet sheet1 = book.getSheet("second sheet");  
-         //获得第一列第一行的单元格  
-         Cell cell = sheet.getCell(0, 0);  
-         String result = cell.getContents();  
-         //获得工作表名称  
-         System.out.println("第一个工作表名称:"+sheet.getName());  
-         //获得列数  
-         System.out.println("列数:"+sheet.getColumns());  
-         //获得行数  
-         System.out.println("行数"+sheet.getRows());  
-         System.out.println("根据下标取得第一列第一行数据:"+result);  
-         /** 
-          * 在用jxl解析excle的时候,如果excel中有小数, 
-          * 如果小数点后的位数多的化,可能会用科学技术法来显示结果, 
-          * 为了避免显示科学计数法,可以通过两个办法来解决 
-          * 1:将excel的小数的cell格的格式改成字符串型。 
-          * 2:用下面的程序处理。 
-          */  
-         Cell cel = sheet.getCell(1,0);  
-         String data = cel.getContents();  
-         if(cel.getType() == CellType.DATE){  
-             DateCell dc = (DateCell)cel;  
-             data = new SimpleDateFormat("YYYY-MM-DD").format(dc.getDate());  
-         }else if(cel.getType() == CellType.NUMBER || cel.getType() == CellType.NUMBER_FORMULA){  
-             NumberCell nc = (NumberCell) cel;  
-             data = ""+nc.getValue();  
-         }  
-           
-         System.out.println("第二列第一行数据:"+data);  
-         System.out.println("=====================================");  
-           
-         Cell cell1 = sheet1.getCell(0, 0);  
-         String result1 = cell1.getContents();  
-         //获得工作表名称  
-         System.out.println("第一个工作表名称:"+sheet1.getName());  
-         //获得列数  
-         System.out.println("列数:"+sheet1.getColumns());  
-         //获得行数  
-         System.out.println("行数"+sheet1.getRows());  
-         System.out.println("根据名称得到sheet数据第一列第一行:"+result1);  
-         book.close();  
-     }  
- }</span><span style="font-weight: bold; font-size: 16px; ">  
- </span>  
 题外话:jxl目前不支持2007及其以后的版本,如果需要可以使用POI。如果你是2007或以上版本,切记不可通过直接修改文件后缀名来使其支持文件的读写操作。