[乐意黎原创]POI 中的CellRangeAddress 参数

本文介绍使用POI进行Excel报表设计时遇到的单元格合并问题,并详细解释了如何利用CellRangeAddress函数来实现跨行跨列的单元格合并。

在用poi在EXECL报表设计的时候,遇到单元格合并问题,用到一个重要的函数:

CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)

参数说明:
int firstRow: 起始行号

int lastRow: 终止行号

int firstCol: 起始列号

int lastCol: 终止列号

网上有地方说是(//参数1:行号 参数2:起始列号 参数3:行号 参数4:终止列号),这应该不是POI包里的。

应该是这样:  CellRangeAddress(起始行号,终止行号, 起始列号,终止列号)


乐意黎
标记一下,大功告成。
本文地址: http://blog.csdn.net/aerchi/article/details/7787891

POI 4.1.2 版本中,使用`CellRangeAddress`合并单元格并添加边框的步骤如下: 1. 创建`CellRangeAddress`对象来定义要合并的单元格区域。 2. 将该区域添加到工作表中以完成合并操作。 3. 使用`RegionUtil`类为合并后的单元格设置边框样式。 以下是一个完整的 Java 代码示例: ```java import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.RegionUtil; import java.io.FileOutputStream; import java.io.IOException; public class MergeCellsWithBorders { // 合并单元格并设置边框 private static void mergeCell(Sheet sheet, Integer firstRow, Integer lastRow, Integer firstCol, Integer lastCol, Workbook wb) { CellRangeAddress region = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol); sheet.addMergedRegion(region); // 给合并单元格加样式 setBorderStyle(HSSFCellStyle.BORDER_THIN, region, sheet, wb); } // 用 POI 自带的工具类来处理合并后的边框 public static void setBorderStyle(int border, CellRangeAddress region, Sheet sheet, Workbook wb) { RegionUtil.setBorderBottom(border, region, sheet, wb); RegionUtil.setBorderLeft(border, region, sheet, wb); RegionUtil.setBorderRight(border, region, sheet, wb); RegionUtil.setBorderTop(border, region, sheet, wb); } public static void main(String[] args) { Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("Sheet1"); // 合并单元格并设置边框 mergeCell(sheet, 1, 1, 1, 3, wb); try (FileOutputStream fileOut = new FileOutputStream("workbook.xls")) { wb.write(fileOut); } catch (IOException e) { e.printStackTrace(); } finally { try { wb.close(); } catch (IOException e) { e.printStackTrace(); } } } } ``` ### 代码解释 - `mergeCell`方法:此方法接收工作表、合并区域的起始行、结束行、起始列、结束列以及工作簿作为参数。在方法内部,创建`CellRangeAddress`对象,并将其添加到工作表中,最后调用`setBorderStyle`方法设置边框样式。 - `setBorderStyle`方法:此方法使用`RegionUtil`类为合并后的单元格区域设置边框样式,包括底部、左侧、右侧和顶部边框。 - `main`方法:创建工作簿和工作表,调用`mergeCell`方法合并指定区域的单元格并设置边框,最后将工作簿写入文件。 ###
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值