Excel 내보내기를 구현하기 전에 다음 도구와 환경을 준비해야 합니다.
1.JDK 환경
3.Apache POI 라이브러리
Apache POI는 다음 작업에 사용할 수 있는 Java 라이브러리입니다. Excel, Word, PowerPoint 파일을 포함한 Microsoft Office 형식의 파일을 읽고 쓸 수 있습니다. 프로젝트에 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. 테이블 데이터 채우기
다음으로 테이블에 데이터를 채워야 합니다. Excel 테이블은 Apache POI 라이브러리의 Row 및 Cell 클래스를 사용하여 조작할 수 있습니다. 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 파일을 로컬 또는 서버로 내보내야 합니다. Excel 파일은 Java의 FileOutputStream 클래스를 사용하여 디스크로 출력할 수 있습니다.
다음은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!