java中jxl.jar包的使用

下载地址:


http://www.andykhan.com/jexcelapi/


真实下载地址:


http://www.andykhan.com/jexcelapi/download.html


网站上对它的特征有如下描述:


● 支持Excel 95-2000的所有版本


● 生成Excel 2000标准格式


● 支持字体、数字、日期操作


● 能够修饰单元格属性


● 支持图像和图表


应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。


搭建环境


将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。


基本操作


一、创建文件


拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:


Java代码 


/*
* Created on Dec 30, 2007
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/  
package JExcelTest.standard;   
  
import java.io.*;   
import jxl.*;   
import jxl.write.*;   
  
/**
* @author Ken
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/  
public class CreateXLS {   
  
    public static void main(String[] args) {   
        try {   
            //open file.   
             WritableWorkbook book = Workbook.createWorkbook(new File("d:/Test.xls"));   
               
            //create Sheet named "Sheet_1". 0 means this is 1st page.   
             WritableSheet sheet = book.createSheet("Sheet_1", 0);   
               
            //define cell column and row in Label Constructor, and cell content write "test".   
            //cell is 1st-Column,1st-Row. value is "test".   
             Label label = new Label(0, 0, "test");   
            //add defined cell above to sheet instance.   
             sheet.addCell(label);   
               
            //create cell using add numeric. WARN:necessarily use integrated package-path, otherwise will be throws path-error.   
            //cell is 2nd-Column, 1st-Row. value is 789.123.   
             jxl.write.Number number = new jxl.write.Number(1, 0, 789.123);   
            //add defined cell above to sheet instance.   
             sheet.addCell(number);   
               
            //add defined all cell above to case.   
             book.write();   
            //close file case.   
             book.close();   
         } catch (Exception e) {   
             e.printStackTrace();   
         }   
     }   
}  
编译执行后,会在当前位置产生一个Excel文件。


二、读取文件


以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下:


Java代码 


/*
* Created on Dec 30, 2007
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/  
package JExcelTest.standard;   
  
import java.io.*;   
import jxl.*;   
  
/**
* @author Ken
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/  
public class ReadXLS {   
  
    public static void main(String[] args) {   
        try {   
             Workbook book = Workbook.getWorkbook(new File("d:/Test.xls"));   
            //get a Sheet object.   
             Sheet sheet = book.getSheet(0);   
            //get 1st-Column,1st-Row content.   
             Cell cell = sheet.getCell(0, 0);   
             String result = cell.getContents();   
             System.out.println(result);   
             book.close();   
         } catch (Exception e) {   
             e.printStackTrace();   
         }   
  
     }   
}  
程序执行结果:test


三、修改文件


利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:


修改Excel的类,添加一个工作表


Java代码 


/*
* Created on Dec 30, 2007
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/  
package JExcelTest.standard;   
  
import java.io.*;   
import jxl.*;   
import jxl.write.*;   
  
/**
* @author Ken
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/  
public class UpdateXLS {   
  
    public static void main(String[] args) {   
        try {   
            //get file.   
             Workbook wb = Workbook.getWorkbook(new File("d:/Test.xls"));   
            //open a copy file(new file), then write content with same content with Test.xls.     
             WritableWorkbook book =   
                 Workbook.createWorkbook(new File("d:/Test.xls"), wb);   
            //add a Sheet.   
             WritableSheet sheet = book.createSheet("Sheet_2", 1);   
             sheet.addCell(new Label(0, 0, "test2"));   
             book.write();   
             book.close();   
         } catch (Exception e) {   
             e.printStackTrace();   
         }   
     }   
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值