1、使用poi合並單元格
public static void main(String[] args) throws Exception { // 定義一個工作簿 Workbook workbook = new XSSFWorkbook(); // 創建一個sheet頁 Sheet sheet = workbook.createSheet("第一個sheet頁"); // 創建一個行 Row row = sheet.createRow(0); // 創建單元格 row.createCell(0).setCellValue("測試內容"); row.createCell(1).setCellValue("測試內容2"); // 合並單元格,合並后的內容取決於合並區域的左上角單元格的值 CellRangeAddress region = new CellRangeAddress(0,3,0,3); sheet.addMergedRegion(region); FileOutputStream fileOutputStream = new FileOutputStream("D:\\用poi測試合並單元格.xlsx"); workbook.write(fileOutputStream); fileOutputStream.close(); }
合並結果如圖:
2、為合並后的單元格添加邊框線
(注意:合並后的單元格會保留原先合並區域左上單元格的居中樣式,但是不會保留原先單元格的邊框線,所以合並單元格之后,需要重新為合並后的單元格添加邊框線)
/** * 為合並后的單元格添加邊框線 * @param cra 合並區域 * @param sheet sheet */ private static void addMergeCellBorder(CellRangeAddress cra, Sheet sheet) { RegionUtil.setBorderTop(BorderStyle.THIN,cra,sheet); RegionUtil.setBorderBottom(BorderStyle.THIN,cra,sheet); RegionUtil.setBorderLeft(BorderStyle.THIN,cra,sheet); RegionUtil.setBorderRight(BorderStyle.THIN,cra,sheet); } public static void main(String[] args) throws Exception { // 定義一個工作簿 Workbook workbook = new XSSFWorkbook(); // 創建一個sheet頁 Sheet sheet = workbook.createSheet("第一個sheet頁"); // 創建一個行 Row row = sheet.createRow(0); // 創建單元格 row.createCell(0).setCellValue("測試內容"); row.createCell(1).setCellValue("測試內容2"); // 合並單元格,合並后的內容取決於合並區域的左上角單元格的值 CellRangeAddress region = new CellRangeAddress(0,3,0,3); sheet.addMergedRegion(region); // 為合並后的單元格添加邊框線 addMergeCellBorder(region, sheet); FileOutputStream fileOutputStream = new FileOutputStream("D:\\用poi測試合並單元格2.xlsx"); workbook.write(fileOutputStream); fileOutputStream.close(); }
結果如圖: