JXLS使用

jxls使用的所有jar包(9个)[url]http://download.csdn.net/detail/wto3309/3167479
[/url]

JXLS使用(一)——Simple Sheet: http://lijiye.iteye.com/blog/108913
JXLS是一个简单易用的一个用于生成和读入Excel的工具,有兴趣的朋友可以到Jxls的官网上面下载最新版本的Jxls,目前Jxls最新的版本是0.9.5,下载的Zip包里面有一个Doc和Example,不过,官网所提供的东西太过简单,如果,需要详细了解Jxls的功能和使用方法的话,可以仔细研究其源代码。
         将Jxls源代码导入到Eclipse的环境中就可以查看和分析其源代码了,导入Eclipse的方法是:
         1)将下载的压缩包里面的Src目录下面的jxls-core和jxls-reader两个文件夹拷贝到一个目录下面(也可以不用拷贝)
         2)在DOS下面进入jxls-core目录下面,输入命令:mvn -eclipse:eclipse。jxls-reader的生成方式也是一样的
         3)打开Eclipse,将生成的两个项目导入
         使用jxls的时候其实就使用两个类就够了:XLSTransformer和Util,至少在我目前的使用过程中只使用到这么两个类。
         jxls的使用方法:
         1)将jxls的jar文件放到我们的程序目录下面,如果,使用Maven的话,直接在Project的pom.xml里面配置依赖就可以了
         2)根据需要生成的Excel文件或者Report的格式,设置一个jxls的Template文件,Template其实就是一个特殊的一些Excel文件,里面包含了一些jxls的Tag标签。
               jxls的Tag其实有点想jstl标签库的使用方式,在取出一个对象的值的时候可以利用下面这样的Tag来将值输出:${object1.property1};如果需要将一个Map输出到Excel的时候定义方式如下:${map.get('property1')};
          3)声明一个XLSTransformer对象,生成方式就是使用new操作符
                XLSTransformer transformer = new XLSTransformer();
          4)得到Template的FIle:
                 String xlsTemplateFileName = this.getClass().getClassLoader().getResource("template.xls");
          5)利用XLSTransformer的类的方法生成Excel文件
                 String xlsFileName = "c:"+File.separator+"resule.xls";
                 Map beans = new HashMap();
                 beans.put("newBeans1","new beans1");
                 beans.put("newBeans2","new beans2");
                 transformer.transformXLS(xlsTemplateFileName , beans, xlsFileName);
                 XLSTransformer类的transformXLS方法的定义如下:
                 public void transformXLS(String srcFilePath, Map beanParams, String destFilePath) throws ParsePropertyException, IOException其中:
                 srcFilePath:是Template文件的全文件名(包含路径)
                 beanParams:需要传入Excel里面的一个Map,jxls根据Template里面的定义和Map里面的对象对Template进行解析,将Map里面的对象值填入到Excel文件中
                 destFilePath:需要生成的Excel文件的全文件名(包含路径)
注:jxls虽然提供了Example,但是,都过于简单,如果想详细了解jxls,可以仔细研究jxls-core,其实没有必要查看其全部代码,如果只是想了解其具体操作,可以详细查看类XLSTransformerTest,即XLSTransformer的测试代码。


XLSTransformer生成excel文件简单示例 http://blog.csdn.net/csdnbenbenchong/article/details/7085124
项目结构图:
JXLS使用
项目中所用到的jar,可以到 http://www.findjar.com/index.x下载



ExcelUtil类源码:

[java] view plaincopy
package util; 
 
import java.io.IOException; 
import java.net.URL; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
import net.sf.jxls.exception.ParsePropertyException; 
import net.sf.jxls.transformer.XLSTransformer; 
/**
* Excel生成类.
*/ 
public class ExcelUtil { 
    /**
     * 根据模板生成Excel文件.
     * @param templateFileName 模板文件.
     * @param list 模板中存放的数据.
     * @param resultFileName 生成的文件.
     */ 
    public void createExcel(String templateFileName, List<?> list, String resultFileName){ 
        //创建XLSTransformer对象 
        XLSTransformer transformer = new XLSTransformer(); 
        //获取java项目编译后根路径 
        URL url = this.getClass().getClassLoader().getResource(""); 
        //得到模板文件路径 
        String srcFilePath = url.getPath() + templateFileName; 
        Map<String,Object> beanParams = new HashMap<String,Object>(); 
        beanParams.put("list", list); 
        String destFilePath = url.getPath() + resultFileName; 
        try { 
            //生成Excel文件 
            transformer.transformXLS(srcFilePath, beanParams, destFilePath); 
        } catch (ParsePropertyException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
 


Test类源码:
package test;  
  
import java.util.ArrayList;  
import java.util.List;  
  
import po.Fruit;  
import util.ExcelUtil;  
/** 
 * 测试类. 
 */  
public class Test {  
  
    public static void main(String[] args) {  
        List<Fruit> list = new ArrayList<Fruit>();  
        list.add(new Fruit("苹果",2.01f));  
        list.add(new Fruit("桔子",2.05f));  
        String templateFileName = "template/template.xls";  
        String resultFileName = "result/fruit.xls";  
        new ExcelUtil().createExcel(templateFileName,list,resultFileName);  
  
    }  
  
} 


template.xls模板文件截图:
JXLS使用

注意:如果你是用的office 2007生成的excel模板,要另存为97-2003版本的。

Fruit类源码:
package po;  
/** 
 * 水果. 
 */  
public class Fruit {  
    /** 
     * 水果名称. 
     */  
    private String name;  
    /** 
     * 水果价格. 
     */  
    private float price;  
      
      
    public Fruit() {  
        super();  
    }  
      
    public Fruit(String name, float price) {  
        super();  
        this.name = name;  
        this.price = price;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public float getPrice() {  
        return price;  
    }  
    public void setPrice(float price) {  
        this.price = price;  
    }  
      
} 


生成fruit.xls文件截图:
JXLS使用

你可能感兴趣的:(JXLS)