前端时候有这样的需求了,在网上找了下,又查询下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()
}
}
分享到:
相关推荐
Poi导出Excel工具类 支持大数据量 多sheet页方式 已经封装好,直接拿来调用里面的方法传入参数就行 很简单
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格
可以运行的POI导出Excel文件实例,里面有两种方法,一个是Servlet,一个是main
使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,
一个POI导出Excel万级数据分页实现 解决内存溢出问题 完整的 project demo 有数据库dmp文件
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...
该实例集成maven开发环境,里面讲解了POI导入和导出Excel表格的基本用法
struts2中利用poi导出excel的简单例子
poi 导出EXCEL 例子 poi 导出EXCEL 例子poi 导出EXCEL 例子poi 导出EXCEL 例子
poi导出excel文档
poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列
这个是java用poi操作Excel进行导出,并且可以自动换行
springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式...
JAVA POI导出EXCEL代码
POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法
poi导出excel需要的jar
POI导出EXCEL经典实现 (Java反射机制更加灵活的应用)
java的poi的导入工具类,只需要传入两个arrayList,一个是execl的标题,一个是ececl的数据,就可以直接导出到execl里面,支持最新的execl,全新封装的,让每一个人都会使用poi导出execl!