/**
* 导出并合并单元格
* 2011-11-7
* @param list
* @param fields
* @param values
* @param sheetName
* @return
* HSSFWorkbook
* Yang,Hualong
*/
public static HSSFWorkbook GenerateExcelAndMerged( List<HashMap<String,Object>> list,
String[] fields, String[] values,String sheetName) {
String flag = "false"; // 设置开关
try {
HSSFWorkbook wb = new HSSFWorkbook(); // 声明一个工作薄
HSSFSheet sheet = wb.createSheet(sheetName);// 声明一个表
HSSFRow row = null; // 声明行
HSSFCell cell = null;// 声明单元
// 创建表头,第一行为0
row = sheet.createRow(0);
for (int i = 0; i < values.length; i++) {
cell = row.createCell(i); // 创建标题
cell.setCellValue(values[i]);// 写入标题
}
Map<String, Object> map = null;
// 写入标题和内容
for (int rowindex = 0; rowindex < list.size(); rowindex++) {
row = sheet.createRow(rowindex + 1); // 从第二行开始
map = list.get(rowindex); // 集合数据写入对象
//出来第一列
for (int i = 0; i < fields.length; i++) {
Object value=map.get(fields[i]);//0 1 2 3
cell = row.createCell(i);// 创建内容
if (map.get(fields[i]) instanceof Double) {
if(Double.parseDouble(String.valueOf(map.get(fields[i])))==-1d){
cell.setCellValue("----");
}else{
Double f = Math.round(Double.parseDouble(map.get(
fields[i]).toString()) * 100) / 100.0;
cell.setCellValue(f + "%");
}
} else if (map.get(fields[i]) instanceof Date) {
Date date = (Date) map.get(fields[i]);
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd");
cell.setCellValue(String.valueOf(sdf.format(date)));
} else {
cell.setCellValue(String.valueOf(map.get(fields[i]))); // 设置单元格的值
}
//判断当前值是否与其 上一行同一列的值相同,相同则合并
if(rowindex>0 && value.equals(sheet.getRow(rowindex).getCell(i).getStringCellValue())){
sheet.addMergedRegion(new CellRangeAddress(rowindex, rowindex+1, 0, 0));
}
}
}
return wb;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
分享到:
相关推荐
这个“excel poi工具类”是利用Apache POI库来实现对Excel文件进行导入、导出、合并单元格以及处理计算公式的功能。下面我们将深入探讨这些知识点。 **1. Apache POI库介绍** Apache POI是一个开源项目,它为Java...
POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法
java POI导出Excel文件多表头文件
EasyUIPoI是一款基于Apache POI的Java工具库,专门用于简化Excel的导出操作,尤其在处理模板和合并单元格方面提供了便利。这个库主要适用于那些需要在Web应用中生成Excel报告或导出数据的场景,比如数据分析、报表...
在这个场景中,我们关注的是如何使用POI来创建一个功能丰富的Excel导出工具类,它能够自动设置标题、列名、文件名,并且支持插入图片以及合并单元格。下面将详细介绍这些功能的实现。 首先,要创建一个Excel工作簿...
利用poi进行excel相同内容合并单元格,只摘要了传入部分功能,请关注addMergedRegion方法
【JAVA】easypoi根据Excel模板导出 循环遍历合并单元格处理
poi导入/导出Excel表格,合并单元格的读取和设置
在本示例中,我们将重点讨论如何使用 Apache POI 来生成 Excel 文件,并进行单元格的合并操作。 首先,我们需要引入 Apache POI 的相关依赖库。如果你使用的是 Maven,可以在项目的 `pom.xml` 文件中添加以下依赖:...
10、添加区域,合并单元格 11、保存Excel文件 12、根据单元格不同属性返回字符串数值 13、常用单元格边框格式 14、设置字体和内容位置 15、插入图片 16、调整工作表位置 17、设置打印区域 18、标注脚注 19...
总之,将HTML表格导出为Excel并支持合并单元格和合并行是一项实用的技术,它扩展了网页应用的功能,使用户能够方便地处理和分享结构化的数据。通过理解和实现这样的功能,开发者可以提升用户体验,特别是在数据报告...
本文将深入探讨如何使用阿里云开发的开源库EasyExcel来处理大数据导出,并结合Apache POI库,以及SpringBoot框架,实现上万条数据的自定义策略合并单元格导出。我们将基于提供的技术栈——EasyExcel 2.1.7,Apache ...
### NPOI读取模板导出Excel(合并单元格) #### 概述 在实际工作中,经常需要将数据导出到Excel文件中,并且在某些情况下还需要对单元格进行合并处理,以达到美观或者特定需求的目的。NPOI是.NET平台上一个强大的...
本项目专注于解决这一问题,通过使用`jxls2`库,能够实现复杂Excel模板的导出,包括单元格的合并,满足多种报表导出需求。现在我们将详细探讨这个项目的核心技术和应用场景。 首先,`jxls2`是一个强大的Java库,它...
关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!
### Java后端生成PDF模板合并单元格表格案例详解 #### 概述 本文将详细介绍一个Java后端生成PDF模板,并在此基础上实现单元格合并功能的案例。案例的主要目的是展示如何在Java环境中创建复杂的表格结构,并将其导出...
- `PoiExcelExporter.java`:这个类可能是负责整个导出过程的核心,包括创建工作簿、设置表头和数据、合并单元格等操作。 - `ExcelService.java`:服务层可能封装了具体的 POI 操作,提供给控制器或其他组件调用。 -...
本主题将深入探讨如何利用Java的Apache POI库中的XSSFWorkbook类来实现自由合并单元格,并设置单元格样式。Apache POI是一个流行的API,它允许开发者读取、创建和修改Microsoft Office格式的文件,包括Excel。 首先...
Java实现合并单元格的同时并导出Excel示例 Java实现合并单元格的同时并导出Excel是软件开发中常见的一种需求,特别是在报表系统和数据处理中。本文将详细介绍Java实现合并单元格的同时并导出Excel的相关知识点,并...
2. **数据处理问题**:在编程中,如Python的Pandas库或Java的Apache POI库处理Excel时,合并单元格可能导致数据读取不一致。例如,如果一个列中的某些单元格被合并,那么对应的行数将无法与未合并的数据对齐,从而...