https://wenku.baidu.com/view/4126bc8071fe910ef12df854.html
http://blog.sina.com.cn/s/blog_4d6be6f30101fd67.html
https://www.yangqiu.cn/xwzhongchou/1441843.html
http://blog.csdn.net/memoryzxj/article/details/50801454
实例代码
package com.test; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import net.sf.jxls.exception.ParsePropertyException; import net.sf.jxls.transformer.XLSTransformer; public class TestJxlsExportReport { public static void main(String[] args) throws ParsePropertyException, InvalidFormatException, IOException { // TODO Auto-generated method stub String templateFileName = "D:\\excel\\temp.xls"; String destFileName = "D:\\excel\\out.xls"; File file = new File(destFileName); if(file.exists()) file.delete(); List<Department> departments = ddd(); Map<String,List<Department>> beans = new HashMap<String,List<Department>>(); beans.put("departments", departments); XLSTransformer transformer = new XLSTransformer(); transformer.transformXLS(templateFileName, beans,destFileName); } public static List<Department> ddd(){ List<Department> dlist = new ArrayList<Department>(); Department ds = new Department(); ds.setName("人力资源部"); ds.setDesc("XXX"); ds.setData1(1); ds.setData2(8); dlist.add(ds); Chief cf = new Chief(); cf.setName("张三"); cf.setAge(18); cf.setPayment("1"); cf.setBonus("2"); ds.chief.add(cf); cf = new Chief(); cf.setName("李四"); cf.setAge(20); cf.setPayment("3"); cf.setBonus("4"); ds.chief.add(cf); Employee e = new Employee(); e.setName("王五"); e.setAge(30); e.setBonus(30.25f); e.setPayment(63.66f); ds.staff.add(e); e = new Employee(); e.setName("Tom"); e.setAge(4); e.setBonus(10.25f); e.setPayment(23.66f); ds.staff.add(e); ds = new Department(); ds.setName("行政部"); ds.setDesc("yyyy"); ds.setData1(7); ds.setData2(9); dlist.add(ds); cf = new Chief(); cf.setName("张三"); cf.setAge(18); cf.setPayment("1"); cf.setBonus("2"); ds.chief.add(cf); cf = new Chief(); cf.setName("李四"); cf.setAge(20); cf.setPayment("3"); cf.setBonus("4"); ds.chief.add(cf); e = new Employee(); e.setName("王五"); e.setAge(30); e.setBonus(30.25f); e.setPayment(63.66f); ds.staff.add(e); e = new Employee(); e.setName("Tom"); e.setAge(4); e.setBonus(10.25f); e.setPayment(23.66f); ds.staff.add(e); return dlist; } }