项目结构图:
项目中所用到的jar,能够到下载
ExcelUtil类源代码:
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; MapTest类源代码:beanParams = new HashMap (); 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(); } }}
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) { Listtemplate.xls模板文件截图:list = new ArrayList (); 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); }}
注意:假设你是用的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文件截图: