Menetapkan Rumus di Excel dengan Apache POI

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan membincangkan bagaimana kita dapat menetapkan formula dalam spreadsheet Microsoft Excel menggunakan Apache POI melalui contoh mudah.

2. Apache POI

Apache POI adalah pustaka Java sumber terbuka yang popular yang menyediakan API dengan programmer untuk membuat, mengubah, dan memaparkan fail MS Office .

Ia menggunakan Buku Kerja untuk mewakili fail Excel dan elemennya. A Cell dalam fail Excel boleh mempunyai pelbagai jenis seperti FORMULA .

Untuk melihat Apache POI dalam tindakan, kita akan menetapkan formula untuk mengurangkan jumlah nilai dalam lajur A dan B dalam fail Excel. Fail yang dipautkan mengandungi data di bawah:

3. Kebergantungan

Pertama, kita perlu menambahkan kebergantungan POI ke fail pom.xml projek kita . Untuk bekerja dengan buku kerja Excel 2007+, kita harus menggunakan poi-ooxml :

 org.apache.poi poi-ooxml 4.1.2 

Perhatikan bahawa untuk versi Excel yang lebih lama, kita harus menggunakan kebergantungan poi sebagai gantinya.

4. Pencarian Sel

Untuk memulakan, mari buka fail kami terlebih dahulu dan bina buku kerja yang sesuai:

FileInputStream inputStream = new FileInputStream(new File(fileLocation)); XSSFWorkbook excel = new XSSFWorkbook(inputStream);

Kemudian, kita perlu membuat atau mencari sel yang akan kita gunakan . Dengan menggunakan data yang dikongsi sebelumnya, kami ingin mengedit sel C1.

Itu ada di helaian pertama dan baris pertama, dan kami boleh meminta POI untuk lajur kosong pertama:

XSSFSheet sheet = excel.getSheetAt(0); int lastCellNum = sheet.getRow(0).getLastCellNum(); XSSFCell formulaCell = sheet.getRow(0).createCell(lastCellNum + 1);

5. Rumusan

Seterusnya, kami ingin menetapkan formula pada sel yang kami cari.

Seperti yang dinyatakan sebelumnya, mari tolak jumlah lajur B dari jumlah lajur A. Di Excel, ini adalah:

=SUM(A:A)-SUM(B:B)

Dan kita boleh menuliskannya ke dalam formulaCell kami dengan kaedah setCellFormula :

formulaCell.setCellFormula("SUM(A:A)-SUM(B:B)");

Sekarang, ini tidak akan menilai formula. Untuk melakukannya, kita perlu menggunakan XSSFFormulaEvaluator POI :

XSSFFormulaEvaluator formulaEvaluator = excel.getCreationHelper().createFormulaEvaluator(); formulaEvaluator.evaluateFormulaCell(formulaCell);

Hasilnya akan ditetapkan di Sel pertama lajur kosong seterusnya:

Seperti yang dapat kita lihat, hasilnya dikira dan disimpan di sel pertama lajur C. Juga formula ditunjukkan dalam bar formula.

Perhatikan bahawa kelas FormulaEvaluator memberi kami kaedah lain untuk menilai FORMULA dalam buku kerja Excel, seperti evaluasi Semua , yang akan melingkari semua sel dan menilai mereka.

6. Kesimpulannya

Dalam tutorial ini, kami menunjukkan cara menetapkan formula pada sel dalam file Excel di Java menggunakan Apache POI API.

Kod sumber lengkap untuk artikel iniboleh didapati di GitHub.