使用JXL

原创 2016年06月02日 09:16:53

一模板多sheet------public  HSSFWorkbook transformMultipleSheetsList(InputStream is, List objects, List newSheetNames, String beanName, Map beanParams, int  startSheetNum) throws  ParsePropertyException {}  

该方法里面的参数说明如下:

1)is:即Template文件的一个输入流
2)objects:即我们传入的对应每个Sheet的一个Java对象即数据源
3)newSheetNames:即形成Excel文件的时候Sheet的Name
4)beanName:这个参数在jxls对我们传入的List进行解析的时候使用
5)beanParams:这个参数是在如果传入的objects还与其他的对象关联的时候使用的,该参数是一个HashMap类型的参数,如果不使用的话,直接传入new HashMap()即可
6)startSheetNo:传入0即可,即SheetNo从0开始

Workbook workbook = transformer.transformMultipleSheetsList(is, objects, listSheetNames, "list", map, 0);
<jx:forEach items="${list}" var="fruit">对应上面第4个参数"list“ 

<jx:forEach items="${header}" var="fruit2">对应上面第5个参数map--比如表头 日期格式化类new SimpleDateFormat("yyyy-MM-dd")等所有生成sheet公用参数  模板中用${dateFormat.format(et.startdate)}取值


生成结果


模板文件



	public void createExcel() throws IOException {
		// 获取Excel模板文件
		URL url = this.getClass().getClassLoader().getResource(""); 
		String filePath = url.getPath() + "/template/XlsExportUtilTemplate.xls";
		System.out.println("excel template file:" + filePath);
		FileInputStream is = new FileInputStream(filePath);

		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		Map<String, Object> map1 = new HashMap<String, Object>();
		map1.put("name", "电视");
		map1.put("price", "3000");
		map1.put("desc", "3D电视机");
		map1.put("备注", "中文测试");
		Map<String, Object> map2 = new HashMap<String, Object>();
		map2.put("name", "空调");
		map2.put("price", "2000");
		map2.put("desc", "变频空调");
		map1.put("备注", "测试中文");
		list.add(map1);
		list.add(map2);
		List<Fruit> list2 = new ArrayList<Fruit>();
		Fruit f1 = new Fruit("电视", 1000, "3D电视机");
		Fruit f2 = new Fruit("空调", 2000, "变频空调");
		Fruit f3 = new Fruit("打印机", 3000, "打印机");
		list2.add(f1);
		list2.add(f2);
		list2.add(f3);
		
		ArrayList<List<?>> objects = new ArrayList<List<?>>();
		objects.add(list2);
		objects.add(list);
		objects.add(list2);
		objects.add(list2);

		// sheet的名称
		List<String> listSheetNames = new ArrayList<String>();
		listSheetNames.add("1");
		listSheetNames.add("2");
		listSheetNames.add("3");
		listSheetNames.add("4");
		
		Map<Object, Object> map = new HashMap<Object, Object>();
		List<String> colHeader = new ArrayList<String>();
		colHeader.add("名称2");
		colHeader.add("价格2");
		colHeader.add("说明2");
		map.put("header", colHeader);

		// 调用引擎生成excel报表
		XLSTransformer transformer = new XLSTransformer();
		Workbook workbook = transformer.transformMultipleSheetsList(is, objects, listSheetNames, "list", map, 0);
		workbook.write(new FileOutputStream("c:\\fruit.xls"));

	}



一模板单sheet------transformer.transformXLS(srcFilePath, beanParams, destFilePath);

public void createExcel() throws IOException {  
    	 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";  
        //创建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; 
        //生成Excel文件  
        transformer.transformXLS(srcFilePath, beanParams, destFilePath);  
        //模板取值<jx:forEach items="${list}" var="fruit">  ${list}对应上面beanParams
    } 



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用JXL与POI操作EXCEL

使用JXL读写文件 一、使用JXL读EXCEL 1、读取EXCEL截图: 2、步骤说明 (1)获取文件 (2)获取文件的WorkBook (3)获取要读取的SHEET,SHEET下标从...

Java:使用jxl读取excel文件内容

Java:使用jxl读取excel文件内容 JXL是用java完成的一个项目,使用jxl.jar可以方便的来操做excel(对于excel2010并不支持) jxl官方下载地址:http://so...

Jxl使用总结(转)

API总结   1、创建或读取一个工作薄 Workbook   创建一个工作薄,就是整个Excel文档,          WritableWorkbook wwb = Workbook.c...

在java中使用jxl操作excel

jxl是一个韩国人写的Java操作excel的工具, 在java的开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI(即jxl)。jxl功能相对POI比较弱一点。 ...

Jxl简单使用(Excel)

jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文...

POI 与 JXL 的一点比较——关于使用Java操作excel文件

java操作excel表格,基本上有两种主流的方法,涉及到两种API,第一个是POI。POI是apache公司的一个子项目,主要是提供一组操作windows文档的Java API,自从 MS 公开了 ...

JXl(excel文件的读写操作)使用API(全)

简单写了对excel写操作的demo: @Test public void creatExcel() throws IOException, RowsExceededException, ...

使用jxl导出Excel文件,并且设置Excel样式

最近一段时间一直在做Excel导出,主要是年关将近,有各类统计数据需要。 第一步:创建Excel文件

java使用jxl工具导入导出excel操作

Java解释Excel数据(jxl.jar包的使用) jxl.jar 包 下载地址: http://www.andykhan.com/jexcelapi/ 真实下载地址: http://w...

使用jxl导出大数据量EXCEL时内存溢出的解决办法

使用jxl导出大数据量EXCEL时内存溢出的解决办法 1、通过jx1最新版本的采用临时文件写入EXCEL功能,设定临时文件的位置,可以有效的避免内存溢出: wbSetting...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)