Mengatur Rumus di Excel dengan Apache POI

1. Ikhtisar

Dalam tutorial singkat ini, kita akan berbicara tentang bagaimana kita dapat mengatur rumus dalam spreadsheet Microsoft Excel menggunakan Apache POI melalui contoh sederhana.

2. Apache POI

Apache POI adalah pustaka Java sumber terbuka populer yang menyediakan API bagi pemrogram untuk membuat, memodifikasi, dan menampilkan file MS Office .

Ini menggunakan Workbook untuk mewakili file Excel dan elemen-elemennya. Sebuah sel dalam file Excel dapat memiliki jenis yang berbeda seperti FORMULA .

Untuk melihat Apache POI beraksi, kami akan menetapkan rumus untuk mengurangi jumlah nilai di kolom A dan B dalam file Excel. File yang ditautkan berisi data di bawah ini:

3. Ketergantungan

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

 org.apache.poi poi-ooxml 4.1.2 

Perhatikan bahwa untuk versi Excel yang lebih lama, kita harus menggunakan ketergantungan poi sebagai gantinya.

4. Pencarian Sel

Untuk memulai, pertama-tama buka file kami dan buat 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 . Menggunakan data yang dibagikan sebelumnya, kami ingin mengedit sel C1.

Itu ada di lembar pertama dan baris pertama, dan kita dapat meminta POI untuk kolom kosong pertama:

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

5. Rumus

Selanjutnya, kami ingin menetapkan rumus pada sel yang telah kami cari.

Seperti yang dinyatakan sebelumnya, mari kita kurangi jumlah kolom B dari jumlah kolom A. Di Excel, ini akan menjadi:

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

Dan kita dapat menuliskannya ke dalam formulaCell kita dengan metode setCellFormula :

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

Sekarang, ini tidak akan mengevaluasi rumus. Untuk melakukan itu, kita perlu menggunakan XSSFFormulaEvaluator POI :

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

Hasilnya akan ditetapkan di Sel pertama dari kolom kosong berikutnya:

Seperti yang bisa kita lihat, hasilnya dihitung dan disimpan di sel pertama kolom C. Rumusnya juga ditampilkan di bilah rumus.

Perhatikan bahwa kelas FormulaEvaluator memberi kita metode lain untuk mengevaluasi FORMULA di buku kerja Excel, seperti evaluAll , yang akan mengulang semua sel dan mengevaluasinya.

6. Kesimpulan

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

Kode sumber lengkap untuk artikel initersedia di GitHub.