Недавно у меня возникла проблема, связанная с приведенным ниже вопросом
Как удалить объединенный регион с помощью POI?
Хотя вышеперечисленное частично решило мою проблему , Я хотел скопировать данные в другие неслитые ячейки. Я не смог найти в самой библиотеке никакого руководства или функции, чтобы решить эту проблему, поэтому я создал более новую версию на основе приведенного выше
HSSFWorkbook wb = new HSSFWorkbook(file.getInputStream());
HSSFSheet sheet = wb.getSheetAt(0);
for(int i=0; i < sheet.getNumMergedRegions(); i++)
{
CellRangeAddress addresses = sheet.getMergedRegion(i);
for(int x=addresses.getFirstRow()+1;x<addresses.getLastRow();x++)
{
HSSFCell cell = sheet.getRow(addresses.getFirstRow()).getCell(addresses.getFirstColumn());
for(int y=addresses.getFirstColumn();y<=addresses.getLastColumn();y++)
{
sheet.getRow(x).getCell(y).setCellStyle(cell.getCellStyle());
switch (cell.getCellType())
{
case _NONE:{}
break;
case BLANK:{}
break;
case STRING:{sheet.getRow(x).getCell(y).setCellValue(cell.getRichStringCellValue());}
break;
case BOOLEAN:{sheet.getRow(x).getCell(y).setCellValue(cell.getBooleanCellValue());}
break;
case NUMERIC:{sheet.getRow(x).getCell(y).setCellValue(cell.getNumericCellValue());}
break;
case FORMULA:{sheet.getRow(x).getCell(y).setCellValue(cell.getCellFormula());}
}
}
}
}
Вышеупомянутое решило мою проблему, но, как вы можете видеть, мне пришлось используйте корпус переключателя. Так что я надеялся, что есть другие способы лучше?