@Test
public void test() throws InterruptedException {
try (FileInputStream firstExport = new FileInputStream("C:\\Users\\chenkuiyou\\Desktop\\first.xlsx")) {
XSSFWorkbook firstWorkbook = new XSSFWorkbook(firstExport);
Sheet firstSheet = firstWorkbook.createSheet("第3页");
FileInputStream secondExport = new FileInputStream("C:\\Users\\chenkuiyou\\Desktop\\second.xlsx");
XSSFWorkbook secondWorkbook = new XSSFWorkbook(secondExport);
Sheet secondSheet = secondWorkbook.getSheetAt(0);
int currentRowNum = 0;
for (int i = 0; i <= secondSheet.getLastRowNum(); i++) {
Row row = secondSheet.getRow(i);
if (row == null) {
continue;
}
Row mergedRow = firstSheet.createRow(currentRowNum++);
for (int j = 0; j < row.getLastCellNum(); j++) {
Cell cell = row.getCell(j);
if (cell == null) {
continue;
}
Cell mergedCell = mergedRow.createCell(j);
switch (cell.getCellType()) {
case BOOLEAN:
mergedCell.setCellValue(cell.getBooleanCellValue());
break;
case NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
mergedCell.setCellValue(cell.getDateCellValue());
} else {
mergedCell.setCellValue(cell.getNumericCellValue());
}
break;
case STRING:
mergedCell.setCellValue(cell.getStringCellValue());
break;
case FORMULA:
mergedCell.setCellFormula(cell.getCellFormula());
break;
case BLANK:
case ERROR:
default:
// do nothing
break;
}
}
}
//样式,合并第一行中两个单元格,参数(开始行,结束行,开始列,结束列)
CellRangeAddress region = new CellRangeAddress(0, 0, 0, 2);
firstSheet.addMergedRegion(region);
CellStyle style = firstWorkbook.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
firstSheet.getRow(0).setRowStyle(style);
FileOutputStream output = new FileOutputStream(new File("C:\\Users\\chenkuiyou\\Desktop\\first.xlsx"));
firstWorkbook.write(output);
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
java中合并两个excel的sheet页
最新推荐文章于 2023-09-12 18:30:19 发布