`
lijiye
  • 浏览: 65063 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JXLS使用(一)——Simple Sheet

阅读更多

         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的测试代码。
                 

        

分享到:
评论
7 楼 bihu0201 2014-12-12  
浏览器导出不支持吗?为什么我的老是报这个错误
Struts Problem Report

Struts has detected an unhandled exception:

Messages: (class: net/sf/jxls/parser/Cell, method: toCellName signature: ()Ljava/lang/String;) Incompatible object argument for function call
File: net/sf/jxls/parser/CellParser.java
Line number: 34

6 楼 pearskill 2014-03-19  
您好,文中说到的生成report格式,这个怎么做的?
5 楼 javaee68 2013-06-20  
4 楼 zhongaili520 2011-08-18  
log4j:WARN No appenders could be found for logger (net.sf.jxls.transformer.SheetTransformer).
log4j:WARN Please initialize the log4j system properly.


我的报这个错
3 楼 Jet_huang 2008-07-29  
解决了  缺少包 org/apache/commons/jexl/ExpressionFactory
2 楼 Jet_huang 2008-07-29  
解决了  缺少包 org/apache/commons/jexl/ExpressionFactory
1 楼 Jet_huang 2008-07-28  
  private static String templateFileName="D:\\resources\\templates\\adjacentlists.xls";
    private static String destFileName="D:\\11.xls";
    public static void main(String[] args) throws IOException, ParsePropertyException {
        if (args.length >= 2) {
            templateFileName = args[0];
            destFileName = args[1];
        }
        Department depIT = new Department("IT");
        Employee chief = new Employee("Derek", 35, 3000, 0.30);
        depIT.setChief(chief);
        Employee elsa = new Employee("Elsa", 28, 1500, 0.15);
        depIT.addEmployee(elsa);
        Map beans = new HashMap();
        beans.put("depIT", depIT);
        XLSTransformer transformer = new XLSTransformer();
        transformer.transformXLS(templateFileName, beans, destFileName);
    }


报错 INFO - SheetTransformer.transformSheet(80) | Processing sheet: Sheet1
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/jexl/ExpressionFactory
at net.sf.jxls.parser.Expression.<init>(Expression.java:58)
at net.sf.jxls.parser.CellParser.parseCellExpression(CellParser.java:141)
at net.sf.jxls.parser.CellParser.parseCellValue(CellParser.java:204)
at net.sf.jxls.parser.CellParser.parseCell(CellParser.java:58)
at net.sf.jxls.transformer.SheetTransformer.parseCells(SheetTransformer.java:186)
at net.sf.jxls.transformer.SheetTransformer.parseRow(SheetTransformer.java:256)
at net.sf.jxls.transformer.SheetTransformer.transformSheet(SheetTransformer.java:88)
at net.sf.jxls.transformer.XLSTransformer.transformWorkbook(XLSTransformer.java:255)
at net.sf.jxls.transformer.XLSTransformer.transformXLS(XLSTransformer.java:234)
at net.sf.jxls.transformer.XLSTransformer.transformXLS(XLSTransformer.java:213)
at com.wlcsp.mis.test.TestImportExcel.main(TestImportExcel.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
这是怎么回事

相关推荐

Global site tag (gtag.js) - Google Analytics