环境:
- Apache POI 3.17;
- HSSFSheet;
目的:
对Excel表格中同一列,如果连续的两个或两个以上单元格的内容相同,则对这些单元格进行合并。
实现代码:
/**
* 合并指定Excel sheet页、指定列中连续相同内容的单元格
*
* @param sheet Excel sheet
* @param column 指定列
*/
public static void mergeSpecifiedColumn(HSSFSheet sheet, int column) {
int totalRows = sheet.getLastRowNum(), firstRow = 0, lastRow = 0;
boolean isLastCompareSame = false;//上一次比较是否相同
//这里第一行是表头,从第三行开始判断是否相同
if (totalRows >= 2) {
for (int i = 2; i <= totalRows; i++) {
String lastRowCellContent = sheet.getRow(i - 1).getCell(column).getStringCellValue();
String curRowCellContent = sheet.getRow(i).getCell(column).getStringCellValue();
if (curRowCellContent.equals(lastRowCellContent)) {
if (!isLastCompareSame) {
firstRow = i - 1;
}
lastRow = i;
isLastCompareSame = true;
} else {
isLastCompareSame = false;
if (lastRow > firstRow) {
sheet.addMergedRegion(new CellRangeAddress(firstRow, lastRow, column, column));
}
}
//最后一行时判断是否有需要合并的行
if ((i == totalRows) && (lastRow > firstRow)) {
sheet.addMergedRegion(new CellRangeAddress(firstRow, lastRow, column, column));
}
}
}
}
方法调用:
//合并单元格
SrItemsUtil.mergeSpecifiedColumn(sheet, 0);
SrItemsUtil.mergeSpecifiedColumn(sheet, 1);
合并前:
合并后:
最新评论
网飞没问题, 迪士尼+有解决方案么?
pp助手是安卓手机用的,根本下载用不来苹果
已解决
这样的话数据库里的结构为{"attachment":{"content":"xxx"}}, 要怎么才能变成{"content":"xxx"},从而使结构保持一致?
赞! make test不过的坑都写到的,谢谢楼主~
谢谢你
用了root用户还是一直502是怎么回事呢
student id 是空的