在excel中合并具有相同值的单元格

我使用POI API从Postgres数据库生成了excel文档。 第一列“Ordre”有许多相同的值。 不过,我想合并这些具有相同值的单元格。

我想要遵循这个algorithm:

  • 循环通过字段“ordre”
  • 如果cell(i)= cell(i + 1)
  • 比合并它们

但我有一个问题,如何在Java中说(单元格(i)=单元格(i + 1)),我并不热衷,如果它可以给我一些满意的结果,我开始写这个代码:

for (i=3; i<= sheet1.getPhysicalNumberOfRows() ; i++) { Cell cell = sheet1.getRow(i).getCell(0); if (sheet1.getRow(i).getCell(0).getStringCellValue() == sheet1.getRow(i+1).getCell(0).getStringCellValue()) { CellRangeAddress cellRangeAddress = new CellRangeAddress(i,i+1,0,0); sheet1.addMergedRegion(cellRangeAddress); } } 

任何build议将不胜感激

使用

sheet1.getRow(ⅰ).getCell(0)的ToString()。等于(sheet1.getRow第(i + 1).getCell(0)的ToString())。

  for (i=3; i<= sheet1.getPhysicalNumberOfRows() ; i++) { Cell cell = sheet1.getRow(i).getCell(0); if (sheet1.getRow(i).getCell(0).toString().equals( sheet1.getRow(i+1).getCell(0).toString())) { CellRangeAddress cellRangeAddress = new CellRangeAddress(i,i+1,0,0); sheet1.addMergedRegion(cellRangeAddress); } } 

“==”用于参考相等性检查。 equals()方法将用于检查内容的相等性。

我有一个类似的要求,我的第一列有重复的价值观。 我试过下面的代码,它工作正常。 在这里,我正在合并基于第一列中的值的行。 NON_REPTNG_COLS是要合并的列数。 您可以修改此方法以适应您的要求。

  int first = 1; int last = 1; int i = 1; while (i < spreadsheet.getPhysicalNumberOfRows()) { first = i; last = i; for (int j = i + 1; j < spreadsheet.getPhysicalNumberOfRows(); j++) { if (spreadsheet.getRow(i).getCell(0).toString() .equals(spreadsheet.getRow(j).getCell(0).toString())) { last = j; } } for (int k = 0; k < NON_REPTNG_COLS; k++) { CellRangeAddress cellRangeAddress = new CellRangeAddress(first, last, k, k); spreadsheet.addMergedRegion(cellRangeAddress); } i = last + 1; }