`

POI导出Excel时一些合并排版之类

阅读更多

前端时候有这样的需求了,在网上找了下,又查询下javadoc,贴一段代码共享下。

 

POI 3.1 final

 

import org.apache.poi.hssf.usermodel.*
import org.apache.poi.hssf.util.*

class ExportModel {
	String sheetTitle

	// 复合表头
	List columnLabel = []
	List columnLabel2 = []
	

	Map columnWidth = [:]
	// merge
	List range = []

	static final short defaultColumnWidth = 22
	static final short columnWidthUnit = 35
	
	static final short rowHeadFontSize = 12

	byte[] export(List ll){
		HSSFWorkbook wb = new HSSFWorkbook()
		HSSFSheet outputSheet = wb.createSheet(sheetTitle)
		outputSheet.setDefaultColumnWidth(defaultColumnWidth)

		// column width setting
		if(columnWidth){
			columnWidth.each{k, v ->
				outputSheet.setColumnWidth((short)k, (short)(columnWidthUnit * v)); 
			}
		}

		// head
		HSSFFont font = wb.createFont()
		font.setFontHeightInPoints(rowHeadFontSize)
		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD)
		font.setColor(HSSFColor.AQUA.index)

		HSSFCellStyle style = wb.createCellStyle()
		style.setFont(font)
//		style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index)
//		style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND)
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER)
		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER)

		HSSFRow row = outputSheet.createRow(0)

		columnLabel.eachWithIndex{label, i ->
			HSSFCell cell = row.createCell((short)i) 
			cell.setCellValue(label)
			cell.setCellStyle(style)
		}

		if(columnLabel2){
			HSSFRow row2 = outputSheet.createRow(1)

			columnLabel2.eachWithIndex{label, i ->
				HSSFCell cell = row2.createCell((short)i) 
				cell.setCellValue(label)
				cell.setCellStyle(style)
			}
		}

		if(range){
			range.each{
				// row from col from row to col to
				outputSheet.addMergedRegion(new Region(it[0], (short)it[1], it[2], (short)it[3]))
			}
		}

		if(ll){
			int startRow = columnLabel2?2:1
			for(one in ll){
				int rowIndex = startRow + ll.indexOf(one)
				HSSFRow subRow = outputSheet.createRow(rowIndex)

				one.eachWithIndex{val, i ->
					HSSFCell cell = subRow.createCell((short)i) 
					cell.setCellValue(val)
				}
			}
		}

		ByteArrayOutputStream os = new ByteArrayOutputStream()
		wb.write(os)
		os.close()

		return os.toByteArray()
	}
}
 
分享到:
评论
1 楼 yilv99 2010-09-16  
支持哈,付出了劳动的都是好的。。。

相关推荐

    java使用POI导出 Excel工具类

    java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。

    POI导出Excel文件

    以下是一个简化的示例,演示了如何使用POI导出Excel: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io....

    excel poi工具类 导入 导出 合并单元格 计算公式

    这个“excel poi工具类”是利用Apache POI库来实现对Excel文件进行导入、导出、合并单元格以及处理计算公式的功能。下面我们将深入探讨这些知识点。 **1. Apache POI库介绍** Apache POI是一个开源项目,它为Java...

    POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格

    在这个场景中,我们关注的是如何使用POI来创建一个功能丰富的Excel导出工具类,它能够自动设置标题、列名、文件名,并且支持插入图片以及合并单元格。下面将详细介绍这些功能的实现。 首先,要创建一个Excel工作簿...

    POI导出Excel表格

    在这个“POI导出Excel表格”的实例中,我们将深入探讨如何利用Apache POI进行Excel文件的导入与导出操作。 首先,我们需要在项目中集成Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...

    POI导出 POI导出 POI导出

    POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI...

    poi导出根据模板导出excel和简单列表导出excel源码

    在本案例中,我们关注的是如何使用 Apache POI 库来导出 Excel 文件,特别是根据模板导出和简单列表导出。下面将详细介绍这个过程。 1. **Apache POI 概述** Apache POI 提供了 Java API 来读写 Microsoft Office ...

    java poi导出excel

    在Java中,如果你需要导出Excel文件,Java POI是一个非常实用的工具。下面将详细介绍如何使用Java POI来实现Excel的导出。 1. **引入依赖** 在Java项目中使用POI,首先需要在项目的构建文件(如Maven的pom.xml或...

    poi导出excel通用类

    标题“poi导出excel通用类”指的是使用Apache POI库创建一个可以用于导出Excel文件的Java类。Apache POI是开源项目,提供了一组API,使得开发者可以在Java应用程序中读写Microsoft Office格式的文件,包括Excel。在...

    poi导出excel需要的jar

    "poi导出excel需要的jar"指的是在使用Apache POI进行Excel导出时,你需要包含特定的JAR依赖文件。 首先,要实现POI导出Excel的功能,你需要下载Apache POI相关的JAR文件。这些文件通常包括以下核心组件: 1. **poi...

    poi导出excel生成下拉列表

    poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列

    poi导出excel表格

    在处理Excel时,POI提供了HSSF(Horizontally-Scalable Spreadsheet Format)用于处理旧版的BIFF格式(.xls),而XSSF则用于处理较新的XML Spreadsheet Format(.xlsx)。 二、Web环境下导出Excel的挑战 在Web应用...

    poi导出excel参考方法

    POI导出Excel参考方法 POI(Poor Obfuscation Implementation)是一个Java的API,用于操作Microsoft Office文档,包括Excel、Word、PowerPoint等。下面是POI导出Excel参考方法的相关知识点: 1. POI的基本概念 ...

    Java实现POI导出Excel

    Java实现POI导出Excel是Java开发者常用的一种技术,用于生成和操作Microsoft Office Excel文件。在Java中,Apache POI库提供了对微软Office文档格式的支持,包括读取和写入Excel文件。这篇博客文章...

    POI操作Excel合并单元格边框问题解决方法

    POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法

    springboot+poi导出指定格式Excel模板

    springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式...

    POI的EXCEL导出,自动换行

    - **兼容性问题**:虽然Apache POI支持多种Excel版本,但在实际使用过程中可能会遇到一些兼容性问题,特别是在处理某些特殊格式或功能时。因此,在正式部署前进行全面的测试是非常重要的。 - **性能优化**:当处理...

    java导出excel POI jar包

    尽管在导出Excel时可能用不上,但这个库扩展了POI的功能范围。 `poi-ooxml-3.15-beta1.jar`是POI的OOXML支持库,主要处理.xlsx文件,与`poi-ooxml-schemas-3.15-beta1.jar`一起提供了对OOXML格式的支持。 `...

    java 使用poi导出excel工具类

    java的poi的导入工具类,只需要传入两个arrayList,一个是execl的标题,一个是ececl的数据,就可以直接导出到execl里面,支持最新的execl,全新封装的,让每一个人都会使用poi导出execl!

Global site tag (gtag.js) - Google Analytics