在開始實作Excel匯出之前,我們需要準備以下工具與環境:
1.JDK環境
3.Apache POI函式庫
Apache POI是一個Java庫,可用來讀取和寫入Microsoft Office格式的文件,包括Excel、Word和PowerPoint等文件。我們需要在專案中引入Apache POI庫。
3.Excel範本
Excel範本是指我們要匯出的Excel檔案的樣式和格式,包括表格的列名、行高、字型、顏色等。我們可以在Excel中建立一個模板,然後將資料填入模板中。這樣可以保證匯出的Excel檔案的格式和樣式一致。
1.建立Excel檔案
首先,我們需要在Java中建立一個Excel檔案。可以使用Apache POI庫中的Workbook類別來建立Excel檔案。 Workbook類別有兩個實作類別:HSSFWorkbook和XSSFWorkbook。 HSSFWorkbook用於建立.xls格式的Excel文件,XSSFWorkbook用於建立.xlsx格式的Excel文件。我們可以根據需要選擇合適的實作類別。
下面是建立Excel檔案的程式碼:
// 创建工作簿 Workbook workbook = new HSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1");
2.填入表格資料
接下來,我們需要將資料填入表格中。可以使用Apache POI庫中的Row和Cell類別來操作Excel表格。 Row表示表格中的一行,Cell表示表格中的一個儲存格。我們可以先建立表頭,然後將資料填入表格中。
下面是填充表格資料的程式碼:
// 创建表头行 Row headerRow = sheet.createRow(0); // 创建表头单元格 Cell headerCell1 = headerRow.createCell(0); headerCell1.setCellValue("姓名"); Cell headerCell2 = headerRow.createCell(1); headerCell2.setCellValue("年龄"); // 填充数据 List<User> userList = getUserList(); for (int i = 0; i < userList.size(); i++) { User user = userList.get(i); Row dataRow = sheet.createRow(i + 1); Cell dataCell1 = dataRow.createCell(0); dataCell1.setCellValue(user.getName()); Cell dataCell2 = dataRow.createCell(1); dataCell2.setCellValue(user.getAge()); }
3.合併儲存格
如果需要將表格中的某些儲存格合併,可以使用Apache POI庫中的CellRangeAddress類別來實作。 CellRangeAddress表示儲存格的合併區域,包括起始行、結束行、起始列、結束列。我們可以建立一個CellRangeAddress對象,然後將其套用到表格中的儲存格。
下面是合併儲存格的程式碼:
// 合并单元格 CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1); sheet.addMergedRegion(region);
4.匯出Excel檔案
最後,我們需要將產生的Excel檔案匯出到本機或伺服器上。可以使用Java中的FileOutputStream類別將Excel檔案輸出到磁碟上。
下面是匯出Excel檔案的程式碼:
// 导出Excel文件 File file = new File("user.xls"); FileOutputStream fos = new FileOutputStream(file); workbook.write(fos); fos.close();
public static void exportExcel() throws Exception { // 创建工作簿 Workbook workbook = new HSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 创建表头行 Row headerRow = sheet.createRow(0); // 创建表头单元格 Cell headerCell1 = headerRow.createCell(0); headerCell1.setCellValue("姓名"); Cell headerCell2 = headerRow.createCell(1); headerCell2.setCellValue("年龄"); // 填充数据 List<User> userList = getUserList(); for (int i = 0; i < userList.size(); i++) { User user = userList.get(i); Row dataRow = sheet.createRow(i + 1); Cell dataCell1 = dataRow.createCell(0); dataCell1.setCellValue(user.getName()); Cell dataCell2 = dataRow.createCell(1); dataCell2.setCellValue(user.getAge()); } // 合并单元格 CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1); sheet.addMergedRegion(region); // 导出Excel文件 File file = new File("user.xls"); FileOutputStream fos = new FileOutputStream(file); workbook.write(fos); fos.close(); } public static List<User> getUserList() { List<User> userList = new ArrayList<>(); userList.add(new User("张三", 20)); userList.add(new User("李四", 25)); userList.add(new User("王五", 30)); return userList; } public static class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
以上是Java怎麼實現匯出合併Excel單元格的詳細內容。更多資訊請關注PHP中文網其他相關文章!