>Java >java지도 시간 >Java에서 Excel 셀을 내보내고 병합하는 방법

Java에서 Excel 셀을 내보내고 병합하는 방법

王林
王林앞으로
2023-05-10 17:16:064439검색

1. 준비

Excel 내보내기를 구현하기 전에 다음 도구와 환경을 준비해야 합니다.

1.JDK 환경

3.Apache POI 라이브러리

Apache POI는 다음 작업에 사용할 수 있는 Java 라이브러리입니다. Excel, Word, PowerPoint 파일을 포함한 Microsoft Office 형식의 파일을 읽고 쓸 수 있습니다. 프로젝트에 Apache POI 라이브러리를 도입해야 합니다.

3.Excel 템플릿

Excel 템플릿은 테이블의 열 이름, 행 높이, 글꼴, 색상 등을 포함하여 내보내려는 Excel 파일의 스타일과 형식을 나타냅니다. Excel에서 템플릿을 만든 다음 템플릿에 데이터를 채울 수 있습니다. 이렇게 하면 내보낸 Excel 파일의 형식과 스타일이 일관되게 유지됩니다.

2. 구현 단계

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();

3 전체 코드

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제