使用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
    } 



ssm导出列表数据

1、制作模板: 2、jsp: function enterpListExport(){ var url = encodeURI(encodeURI('/cz...

使用 jxl.jar 架包生成 Excel文件

package com.util; import java.io.File; import java.io.IOException; import java.io.OutputStream; imp...

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

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

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

使用jxl导出大数据量EXCEL时内存溢出的解决办法 1、通过jx1最新版本的采用临时文件写入EXCEL功能,设定临时文件的位置,可以有效的避免内存溢出: wbSetting...

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

最近一段时间一直在做Excel导出,主要是年关将近,有各类统计数据需要。 第一步:创建Excel文件...
  • hamote
  • hamote
  • 2016年01月26日 15:26
  • 469

jxl使用formula插入hyperlink时wps无法点开链接问题

网上有很多文章说使用formula可以生成hyperlink函数,用来在excel里面加入链接。确实是可以的。 但是生成的excel用office可以打开设置的链接,wps却打不开,这是为什么呢? ...

java使用poi或者jxl实现excel导出之后如何弹出保存提示框

无论使用poi还是使用jxl导出excel都需要用到流 一种是outputstrean,另一种fileoutputstream 第一种:如果想要弹出保存的提示框必须加入下列三句 response.se...

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

Java解释Excel数据(jxl.jar包的使用) jxl.jar 包 下载地址: http://www.andykhan.com/jexcelapi/ 真实下载地址: http://w...
  • gwpJava
  • gwpJava
  • 2013年12月27日 16:34
  • 685

java中使用jxl导出excel表格的工具类(全网唯一亲测可用,在原来基础上扩展)

java中后台导出excel的话,有两种方案,一是使用poi(不过由于是windows版本的,存在不兼容,但功能更多,更强大),而是使用jxl(纯java编写,不过兼容,简单一些),由于只需要简单的导...

java中使用JXL对Excel文件进行数据的写入、导出操作

最近使用excel导出比较多,发现这篇文章还不错,特转载以供自己学习。 如需要jar文件自己另行百度。 (仅供参考) 1,案例-读取excel中的内容。 package com.w...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用JXL
举报原因:
原因补充:

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