Jxls 操作Excel 动态表格(Dynamic Grid)+ 多sheet 组合使用范例

该博客展示了如何使用jxls库在Java中动态生成多sheet的Excel文件。通过创建`Page`对象来组织数据,并利用`JxlsHelper`处理模板,将数据填充到模板中,最终生成包含不同数据列表的两个工作表。
摘要由CSDN通过智能技术生成

jxls 版本 2.10.0

模板

代码


public class SimpleGridJxls {

   public static void main(String[] args) throws Exception {

      List<List<Object>> dataList = new ArrayList<List<Object>>();
      List<Object> data1 = new ArrayList<Object>();
      data1.add("chendd");data1.add("A");data1.add(25);
      dataList.add(data1);
      List<Object> data2 = new ArrayList<Object>();
      data2.add("jiangjj");data2.add("B");data2.add(26);
      dataList.add(data2);
      List<Object> data3 = new ArrayList<Object>();
      data3.add("zengxr");data3.add("C");data3.add(27);
      dataList.add(data3);
      
      
      List<List<Object>> dataList2 = new ArrayList<List<Object>>();
      List<Object> data21 = new ArrayList<Object>();
      data21.add("chendd");data21.add("A");data21.add(25);data21.add("Ha1");
      dataList2.add(data21);
      List<Object> data22 = new ArrayList<Object>();
      data22.add("jiangjj");data22.add("B");data22.add(26);data22.add("Ha2");
      dataList2.add(data22);
      List<Object> data23 = new ArrayList<Object>();
      data23.add("zengxr");data23.add("C");data23.add(27);data23.add("Ha3");
      dataList2.add(data23);
      
      //此处SheetName 必须自定义 不能写成Sheet1,Sheet2这样
      Page page1 = new Page();
      page1.setName("S1");
      page1.setHeaders(Arrays.asList("Name" , "Gender" , "Age"));
      page1.setDataList(dataList);
      
      Page page2 = new Page();
      page2.setName("S2");
      page2.setHeaders(Arrays.asList("Name" , "Gender" , "Age","Haha"));
      page2.setDataList(dataList2);
      
      List<Page> pages = new ArrayList<Page>();
      pages.add(page1);
      pages.add(page2);
      
      InputStream is = SimpleGridJxls.class.getClassLoader().getResourceAsStream("template.xlsx");
      Context context = PoiTransformer.createInitialContext();
      context.putVar("pages", pages);
      context.putVar("sheetNames", Arrays.asList(page1.getName(),page2.getName()));
      OutputStream os = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\test\\out_simpleGrid.xlsx"));

      JxlsHelper.getInstance().processTemplate(is, os, context);
      os.flush();
      os.close();
      is.close();
   }
 
}

package test;

import java.util.ArrayList;
import java.util.List;

public class Page {
	
    private String name;
    private List<List<Object>> dataList;
    private List<String> headers;
    
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public List<List<Object>> getDataList() {
		return dataList;
	}
	public void setDataList(List<List<Object>> dataList) {
		this.dataList = dataList;
	}
	public List<String> getHeaders() {
		return headers;
	}
	public void setHeaders(List<String> headers) {
		this.headers = headers;
	}
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值