`

jxls实现excel动态模板

    博客分类:
  • J2SE
阅读更多

       最近项目有需求要做几个报表,页面涉及行列的合并和分组,费了九牛二虎之力把jsp页面展示给做完了,但是更困难的其实是导出功能,简单的excel导出大致就是第一行标题,后续数据,使用poi包的HSSFWorkbook等工具类就可以实现,这里不做赘述。但LZ这次的需求涉及行和列的合并,带参数的标题头等苦难,用代码控制略显繁琐,且不容易操作。LZ无奈借助百度君,找到jxls模板语言导出模板excel的解决方案,几番尝试后证实,功能可用且相当强大。

       首先第一步,引入jar包,最主要的两个,jxls-core-x.x.x.jar和poi-x.x.jar。接下来封装自己的数据,结构可以全部是Map,List组合,也可以自己封装对象,最后存储在一个map中,作为参数使用。代码样例:

private void buildXLS(Map map, String filePath, String targetPath) 
{
	XLSTransformer transformer = new XLSTransformer();
	try 
	{
		InputStream is = new FileInputStream(filePath);
		XSSFWorkbook workBook = (XSSFWorkbook) transformer.transformXLS(is,map);
		workBook.setActiveSheet(0);
		OutputStream os = new FileOutputStream(targetPath);
		workBook.write(os);
		is.close();
		os.flush();
	} 
	catch (FileNotFoundException e) 
	{
		log.error(e);
	}
	catch (IOException e) 
	{
		log.error(e);
	} 
	catch (Exception e) 
	{
		log.error(e);
	}
}
public String execute()
{
	...
	//生成excel文件
	buildXLS(map, filePath, targetPath); 
	inputStream = new FileInputStream(targetPath);
   
        fileName = "SheetMonthReport.xlsx";
        return "file";
}

 struts配置:

<result name="file" type="stream">
	<param name="inputName">inputStream</param>
	<param name="contentType">application/octet-stream</param>
	<param name="contentDisposition">attachment;filename="${fileName}"</param>
	<param name="bufferSize">4096</param>
</result>

 当然了,前面说的都是铺叙,现在说下重点,excel模板导出具体怎么做呢,先把自己的模板搞好,根据客户的需求或者自己琢磨一个华丽的模板,然后就需要嵌入jx标签了。

 

list类型的遍历

xx yy
<jx:forEach items="${datas}" var="data">  
${data.SHEETNO} ${data.SHEET_NUM}
</jx:forEach>  
合计 $[SUM(B4)]

 

Map类型的遍历

xx yy
<jx:forEach items="${brokenMonthMap.keySet()}" var="key" varStatus="status">  
${key} ${brokenMonthMap.get(key).get('aaa').get('bbb')}
</jx:forEach>  

 

组合遍历

名称 <jx:forEach items="${nums}" var="num" varStatus="count"> 值${count.index+1} </jx:forEach>
<jx:forEach items="${datas}" var="data" varStatus="status">      
参数${status.index+1} <jx:forEach items="${data.keySet()}" var="key" varStatus="count"> ${data.get(key)} </jx:forEach>
</jx:forEach>      

if判断

<jx:if test="${entity.params==1}">
zz
</jx:if>


       注意:所有的标签都是单独存在的,必须单独放在某一个单元格中,且前后不能有多余字符,特别注意左右不能有空格。LZ在这里只是简单介绍下jxls的语法,开发一些简单的excel模板报表基本够用了,如果有更复杂的数据类型或者展示方式,详情可自行查找相关文档自己学习。

1
0
分享到:
评论

相关推荐

    使用JXLS+Excel模板制作灵活的excel导出

    本文将详细介绍如何使用JXLS库结合Excel模板来实现这一功能。 JXLS(Java Excel Library)是一个强大的开源Java库,它允许开发者通过简单的XML模板来控制Excel文件的内容和格式。这个库简化了Java程序生成复杂Excel...

    用Jxls实现数据导入excel实例

    Jxls库的核心功能在于提供了一种声明式的方式来处理Excel模板,通过使用Apache POI库来操作Excel文件。它的主要优点是将数据和样式分离,让开发者可以专注于业务逻辑,而无需关心底层Excel表格的细节。 首先,我们...

    jxls利用模板生成excel文件

    `jxls`(Java eXtensions for Sheets)是一个开源项目,其主要功能是在Java应用中动态地填充Excel模板,生成定制化的Excel文件。它利用Apache POI库操作Excel,并引入了类似于JSP标签的概念,使得开发者可以轻松地将...

    JXLS - EXCEL模板

    NULL 博文链接:https://siyuan-zhu.iteye.com/blog/2240423

    jxls实现Excel表格

    jxls是一个强大的库,它允许开发者利用Java编程来动态地填充Excel模板,从而生成复杂的Excel文件。这个库简化了Java与Excel之间的交互,使得我们可以轻松地将数据结构转换为美观的表格。 **1. jxls基本概念** jxls...

    jxls使用模板实现导出excel!

    在jxls中,你可以创建一个Excel模板文件,其中包含静态内容和占位符。占位符是使用特定的jxls标签定义的,例如`&lt;jx:each&gt;`用于遍历集合,`&lt;jx:eval&gt;`用于执行表达式。模板设计的目标是使Excel的格式和布局与业务...

    SpringBoot(33) 整合JXLS实现Excel导入导出

    2. **创建Excel模板**:使用Microsoft Excel创建一个模板文件,定义好所需的样式和布局。JXLS会根据模板和提供的数据来生成Excel文件。 3. **编写Java代码**:创建一个服务类,定义方法来处理Excel的导入和导出。...

    jxls+springmvc实现excel模板导出

    总的来说,"jxls+springmvc实现excel模板导出"是一种常见的Web应用功能,允许用户下载由动态数据填充的结构化Excel报告。通过合理利用这两个工具,开发者可以高效地创建可复用且易于维护的数据导出解决方案。

    Excel报表导出,复杂Excel模板导出(带单元格合并),jxls2

    首先,`jxls2`是一个强大的Java库,它扩展了Apache POI库的功能,使得开发者能够以声明式的方式来定义Excel模板,并将Java对象的数据填充到模板中,生成动态的Excel报表。这种工作方式极大地简化了Excel导出的编程...

    jxls模板导出Excel所需jar包

    而jxls则在POI的基础上添加了对模板处理的支持,使得开发者可以使用类似于JSP的语法在Excel模板中动态插入数据。 要使用jxls,你需要引入相应的jar包。"jxls使用模板导出excel"这个压缩包可能包含了以下核心组件的...

    利用jxls操作excel模板文件

    在Java开发中,处理Excel...通过以上步骤,你就可以在Java项目中灵活地利用Jxls库来处理Excel模板文件,实现数据的导入导出和报表生成等功能。熟练掌握Jxls的使用,能极大地提高开发效率,让Excel操作变得简单易行。

    简单springboot实现Jxls导出excel

    做了一个简单的springboot功能,用maven管理项目,利用jxls实现到处excel功能,jxls使用简单,只需定义一个excel模板,在excel中使用jx公式即可轻松实现,具体可查看项目,运行Application.java的main方法即可启动...

    jxls模板导出Excel教程

    jxls的主要特点是使用模板来生成报表,用户可以根据需要创建自定义的Excel模板,然后使用jxls引擎来将数据填充到模板中。jxls支持多种格式和可扩展功能,可以生成复杂的Excel报表。 使用jxls可以解决以下问题: * ...

    jxls 读写Excel

    它提供了方便的方式来动态地生成和填充Excel模板,适用于数据报告、批量数据导入导出等场景。 描述中的“jxls实现例子”暗示了该博客文章可能包含如何使用jxls的实际示例代码或步骤,通过访问提供的链接(已省略,...

    使用xls或xlsx模板(jxls语法)导出Excel并下载的Demo

    总结起来,使用jxls库和Excel模板可以简化Web应用中动态Excel文件的生成过程,提高了开发效率和代码的可读性。通过掌握以上知识点,你可以轻松地实现在Java应用中导出和下载Excel文件的功能。在实际操作中,结合具体...

    使用 jxls2.X 导出excel文件

    你需要创建一个Excel模板文件(通常以.xls或.xlsx格式),并在其中使用jxls的特定指令(如`开头的标签)来定义动态区域。例如,`&lt;jx:each&gt;`标签可以用来遍历Java集合中的元素,将每个元素填充到对应的工作表行中。 ...

    jxls导出excel官方例子

    创建一个Excel模板(例如:`template.xlsx`),这个模板包含了静态内容和占位符。占位符使用特定的jxls指令,如`&lt;jx:each&gt;`,用于迭代数据集合。 3. **处理数据** 在Java代码中,你需要创建一个数据模型,这通常...

    jxls-poi导出excel示例代码文件

    它基于模板引擎的概念,允许我们在Excel模板中定义好数据展示的格式,然后通过Java代码将数据填充到模板中。这样,我们就可以避免繁琐的Excel编程,只需关注数据和模板的设计。 在描述中提到的"读取json转为excel...

    java web使用jxls导出excel功能

    Jxls库提供了灵活的模板机制,使得数据与格式分离,使得Excel模板的设计和维护变得更加简单。同时,由于Jxls是基于Apache POI实现的,因此它支持多种版本的Excel文件,包括老式的`.xls`和现代的`.xlsx`格式。

Global site tag (gtag.js) - Google Analytics