/**
* 导出并合并单元格
* 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;
}
分享到:
相关推荐
POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法
java POI导出Excel文件多表头文件
POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格
easyuiPoi 通过模板导出Excel、支持纵向合并单元格(合并重复内容)。压缩包包含公共工具类、示例模板、调用截图。
excel poi工具类 导入 导出 合并单元格 计算公式
【JAVA】easypoi根据Excel模板导出 循环遍历合并单元格处理
poi导入/导出Excel表格,合并单元格的读取和设置
10、添加区域,合并单元格 11、保存Excel文件 12、根据单元格不同属性返回字符串数值 13、常用单元格边框格式 14、设置字体和内容位置 15、插入图片 16、调整工作表位置 17、设置打印区域 18、标注脚注 19...
利用poi进行excel相同内容合并单元格,只摘要了传入部分功能,请关注addMergedRegion方法
关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!
1. 第一部门:详细介绍POI使用以及完成各种复杂的Excel的导出(动态筛选、多对象数据导出到同一sheet内、动态横向合并单元格以及动态纵向合并单元格等) 2.第二部分:使用EasyExcel导出excel的多种情况的例子介绍...
支持大数据量导出excel。自动合并相同数据单元格,可根据id自动识别是否合并,支持自定义类型数据转换,根据实体类自动识别。
java 导出,导入excel。用户自定义导出模板。模板显示内容用el表达式即可。用户可以定义每一个单元格的显示内容。可以自定义List数据的展示。一个excel的sheet内,可以有多个list的数据循环
一般在导出Excel中,在创建工作表sheet后,初始化的sheet中row都是一行一行的,每个单元格都是最小单位,所以问题1什么时候将单元格合并? 方案:先将数据组装成json格式方便插入Excel时进行遍历,接着以巡检项为每...
java代码,实现从数据库中查询出数据,然后通过poi实现合并单元格生成excel
POI报表导出excel文件,POI包为3.6版本。里面导出的方法及设置样、合并单元格,合并多表头均有比较清晰的注释。希望对大家有用。
主要介绍了SpringBoot整合POI导出通用Excel的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
* var dynCondVal = startDate + "," + endDate; var gauge_head1="日期@交易金额汇总@渠道@交易类型";//表头1 要合并的格表头描述字段 已@分割 注意 这里...//合并 要合并的格 1不用合并 2表示合并二格 否则上下合并
注意common-poi使用的SXSSFWorkbook(这个只支持xlsx)支持缓存导出,但是这个只支持简单的for循环导出,模板中的合并单元格那些都未做处理,可能以后会完善。common-poi-no-cache这个支持合并单元格及xls导出。但是...