Rumah  >  Artikel  >  Java  >  Menggunakan Apache POI untuk pemprosesan Excel dalam pembangunan API Java

Menggunakan Apache POI untuk pemprosesan Excel dalam pembangunan API Java

WBOY
WBOYasal
2023-06-18 12:17:541248semak imbas

Dengan perkembangan pemformatan, kepentingan pemprosesan data terus diketengahkan. Untuk perniagaan dan individu, lembaran kerja Excel telah menjadi kaedah pemprosesan data yang paling biasa digunakan dalam kerja harian. Walau bagaimanapun, walaupun lembaran kerja Excel mudah digunakan, kerana jumlah data dan keperluan pemprosesan meningkat, kaedah pemprosesan Excel biasa selalunya sukar untuk memenuhi keperluan aplikasi praktikal. Pada masa ini, menggunakan perpustakaan Apache POI untuk pemprosesan Excel dalam pembangunan API Java telah menjadi pilihan yang sangat baik.

1. Pengenalan kepada Apache POI

Apache POI (Poor Obfuscation Implementation) ialah perpustakaan Java percuma yang digunakan untuk memproses dan mengendalikan fail dalam format Microsoft Office, termasuk Word, Excel dan PowerPoint, dsb. dokumen. Apache POI membenarkan pengaturcara Java membaca, menulis dan memanipulasi fail Office dengan mudah.

POI Apache boleh dibahagikan secara kasar kepada tiga bahagian:

  • HSSF (Format Hamparan Mengerikan): memproses fail Excel 97-2003, iaitu format xls; >XSSF (Format Hamparan XML): Memproses fail dalam Excel 2007 dan ke atas, iaitu, format xlsx; format 2003 masing-masing dan fail Word 2007 dan ke atas.
  • Artikel ini tertumpu terutamanya pada penggunaan HSSF dan XSSF.
  • 2. Pemasangan POI

Sebelum menggunakan Apache POI untuk pemprosesan Excel, kami perlu memasang perpustakaan terlebih dahulu. Pemasangan Apache POI agak mudah Anda hanya perlu memuat turun versi terkini pakej balangnya dan menambahkannya ke laluan kelas projek. Adalah disyorkan untuk menggunakan alat seperti Maven atau Gradle untuk memperkenalkan POI, untuk mengelakkan pengecualian yang disebabkan oleh konflik versi dan isu lain.

3. Membaca fail Excel

Membaca fail Excel ialah salah satu operasi paling asas dalam aplikasi Apache POI. Di bawah ialah contoh kod untuk membaca fail xlsx.

public static void readXlsx(String filePath) throws IOException {
    FileInputStream fis = new FileInputStream(filePath);
    XSSFWorkbook workbook = new XSSFWorkbook(fis); // 创建工作簿
    XSSFSheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
    int rowStartIndex = sheet.getFirstRowNum(); // 获取第一行的行号
    int rowEndIndex = sheet.getLastRowNum(); // 获取最后一行的行号
    for (int i = rowStartIndex; i <= rowEndIndex; i++) { // 循环行
        XSSFRow row = sheet.getRow(i); // 获取当前行
        if (row == null) { // 若为空行则跳过
            continue;
        }
        int cellStartIndex = row.getFirstCellNum(); // 获取第一列的列号
        int cellEndIndex = row.getLastCellNum() - 1; // 获取最后一列的列号
        for (int j = cellStartIndex; j <= cellEndIndex; j++) { // 循环列
            XSSFCell cell = row.getCell(j); // 获取当前单元格
            String cellValue = cell.getStringCellValue(); // 获取当前单元格的值
            System.out.print(cellValue + "  "); // 输出到控制台
        }
        System.out.println();
    }
    workbook.close(); // 关闭工作簿
    fis.close(); // 关闭输入流
}

Dalam kod ini, kami mula-mula menggunakan FileInputStream untuk membuka fail xlsx dan menggunakan XSSFWorkbook untuk mencipta buku kerja. Kami kemudian mengambil lembaran kerja pertama dan menggunakan gelung untuk membaca kandungan fail baris demi baris dan lajur demi lajur, mengeluarkan nilai setiap sel ke konsol. Akhir sekali, kita perlu menutup buku kerja dan aliran input untuk mengeluarkan sumber.

Membaca fail xls pada asasnya sama seperti membaca fail xlsx Anda hanya perlu menukar kod berkaitan XSSF kepada HSSF.

4. Menulis fail Excel

Menulis fail Excel juga merupakan salah satu operasi biasa dalam aplikasi Apache POI. Di bawah ialah contoh kod yang menulis ke fail xlsx.

public static void writeXlsx(String filePath) throws IOException {
    XSSFWorkbook workbook = new XSSFWorkbook(); // 创建工作簿
    XSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建工作表
    XSSFRow row0 = sheet.createRow(0); // 创建第一行
    XSSFCell cell00 = row0.createCell(0); // 创建第一个单元格
    cell00.setCellValue("姓名"); // 设置单元格的值
    XSSFCell cell01 = row0.createCell(1); // 创建第二个单元格
    cell01.setCellValue("年龄"); // 设置单元格的值
    XSSFRow row1 = sheet.createRow(1); // 创建第二行
    XSSFCell cell10 = row1.createCell(0); // 创建第一个单元格
    cell10.setCellValue("张三"); // 设置单元格的值
    XSSFCell cell11 = row1.createCell(1); // 创建第二个单元格
    cell11.setCellValue(20); // 设置单元格的值
    XSSFRow row2 = sheet.createRow(2); // 创建第三行
    XSSFCell cell20 = row2.createCell(0); // 创建第一个单元格
    cell20.setCellValue("李四"); // 设置单元格的值
    XSSFCell cell21 = row2.createCell(1); // 创建第二个单元格
    cell21.setCellValue(25); // 设置单元格的值
    FileOutputStream fos = new FileOutputStream(filePath);
    workbook.write(fos); // 输出文件
    workbook.close(); // 关闭工作簿
    fos.close(); // 关闭输出流
}

Dalam kod ini, kami mencipta fail xlsx dan mencipta helaian bernama "Sheet1" di dalamnya. Seterusnya, kami menambah tiga baris data pada jadual, setiap baris mengandungi dua sel. Akhir sekali, kami mengeluarkan fail ke laluan fail yang ditentukan dan menutup buku kerja dan aliran output untuk mengeluarkan sumber.

Menulis fail xls pada asasnya sama seperti menulis fail xlsx Anda hanya perlu menukar kod berkaitan XSSF kepada HSSF.

5. Ringkasan

Melalui penjelasan artikel ini, pembaca boleh mempunyai pemahaman awal tentang penggunaan Apache POI dalam pembangunan API Java, terutamanya dalam pemprosesan fail Excel. Sama ada membaca atau menulis fail Excel, Apache POI menyediakan antara muka yang mudah digunakan yang membolehkan pengaturcara Java mengendalikan fail Excel dengan mudah. Pada masa yang sama, Apache POI juga menyokong pemprosesan fail Office seperti Word dan PowerPoint, dan merupakan perpustakaan alat penting untuk pembangun Java.

Atas ialah kandungan terperinci Menggunakan Apache POI untuk pemprosesan Excel dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn