Potężne możliwości formuły Microsoft Excel są niezbędne do wykonywania złożonych obliczeń, analizy danych i tworzenia dynamicznych raportów. Ale co, jeśli możesz zautomatyzować te operacje formalne za pomocą biblioteki Java? Właśnie tam wchodzi Apache Poi. W tym poście na blogu pokażemy, jak używać biblioteki Apache Poi do obliczania formuł Excel z aplikacji Java i zapisywania skoroszytu jako plik XLSX.

Zrozumienie formuł i obliczeń

Formuły leżą u podstaw funkcjonalności Excel. Pozwalają ci wykonywać operacje matematyczne, manipulować danymi i tworzyć relacje między różnymi komórkami. Apache POI upoważnia programistów Java do generowania i manipulowania tymi formułami programowo, umożliwiając automatyzację i dostosowywanie.

Konfigurowanie projektu

Zanim zagłębiamy się w szczegóły formuł, skonfigurujmy nasz projekt, aby współpracować z Apache Poi. Musisz dołączyć odpowiednie biblioteki POI w swoim projekcie Java. Możesz pobrać biblioteki ze strony internetowej Apache Poi lub dodać je za pomocą narzędzia do zarządzania zależnością, takiego jak Maven lub Gradle. Sprawdź nasz artykuł Apache POI API, aby uzyskać więcej informacji na temat konfigurowania środowiska programistycznego dla twojego projektu.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.1</version>
</dependency>

Tworzenie podstawowych formuł

Zacznijmy od prostego przykładu. Wyobraź sobie, że masz arkusz Excel z dwiema kolumnami zawierającymi liczby. Chcesz obliczyć sumę tych liczb w trzeciej kolumnie. Oto jak możesz to osiągnąć za pomocą Apache Poi:

Importuj niezbędne klasy

Zacznij od zaimportowania wymaganych klas z biblioteki APACHE POI, takich jak skoroszyt, arkusz i wiersz.

Uzyskaj dostęp do żądanych komórek

Użyj metody getCell (), aby uzyskać dostęp do komórek zawierających liczby, które chcesz sumować.

Utwórz formułę

Użyj metody CreateFormula (), aby wygenerować formułę. W takim przypadku będzie to coś takiego jak suma (A2: B2).

Ustaw formułę na komórkę docelową

Przypisz formułę do komórki, w której chcesz, aby wynik pojawił się za pomocą metody setCellFormula ().

Oceń formułę

Po ustawieniu formuły użyj metody oceniafulacel () , aby obliczyć i wypełnić wynik.

Formuły Excel za pomocą biblioteki Apache Poi Java

Rzućmy okiem na następującą próbkę kodu, która używa:

  • Dodaj wzór, aby dodać dwie wartości w komórce
  • Moc Wzór do obliczenia mocy wartości w komórce
  • MAX Wzór, aby uzyskać maksymalną wartość komórki
  • FACT Wzór do obliczenia czynnika wartości w komórce
  • Wzór sqrt do obliczenia pierwiastka kwadratowego wartości w komórce Poniższa próbka kodu pokazuje zastosowanie tych formuł Excel z aplikacji Java.
XSSFWorkbook wb = new XSSFWorkbook(); 
XSSFSheet spreadsheet = wb("formula");
XSSFRow row = spreadsheet.createRow(1);
XSSFCell cell = row.createCell(1);
cell.setCellValue("A = ");
cell = row.createCell(2);
cell.setCellValue(2);
row = spreadsheet.createRow(2);
cell = row.createCell(1);
cell.setCellValue("B = ");
cell = row.createCell(2);
cell.setCellValue(4);
row = spreadsheet.createRow(3);
cell = row.createCell(1);
cell.setCellValue("Total = ");
cell = row.createCell(2);
// Create SUM formula
cell.setCellFormula("SUM(C2:C3)");
cell = row.createCell(3);
cell.setCellValue("SUM(C2:C3)");
row = spreadsheet.createRow(4);
cell = row.createCell(1);
cell.setCellValue("POWER =");
cell=row.createCell(2);
// Create POWER formula
cell.setCellFormula("POWER(C2,C3)");
cell = row.createCell(3);
cell.setCellValue("POWER(C2,C3)");
row = spreadsheet.createRow(5);
cell = row.createCell(1);
cell.setCellValue("MAX = ");
cell = row.createCell(2);
// Create MAX formula
cell.setCellFormula("MAX(C2,C3)");
cell = row.createCell(3);
cell.setCellValue("MAX(C2,C3)");
row = spreadsheet.createRow(6);
cell = row.createCell(1);
cell.setCellValue("FACT = ");
cell = row.createCell(2);
// Create FACT formula
cell.setCellFormula("FACT(C3)");
cell = row.createCell(3);
cell.setCellValue("FACT(C3)");
row = spreadsheet.createRow(7);
cell = row.createCell(1);
cell.setCellValue("SQRT = ");
cell = row.createCell(2);
// Create SQRT formula
cell.setCellFormula("SQRT(C5)");
cell = row.createCell(3);
cell.setCellValue("SQRT(C5)");
wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
FileOutputStream out = new FileOutputStream("formula.xlsx");
wb.write(out);
out.close();
System.out.println("fromula.xlsx written successfully");

Wniosek

Apache POI odblokowuje potencjał automatyzacji i dostosowywania formuł i obliczeń Excel za pomocą kodu Java. Niezależnie od tego, czy budujesz raporty finansowe, narzędzia do analizy danych, czy dowolna aplikacja, która obejmuje manipulację programem Excel, możliwości formuły Apache Poi są potężnym dodatkiem do Twojego zestawu narzędzi. Rozumiejąc, jak tworzyć, oceniać i zarządzać formułami za pomocą Apache POI, możesz usprawnić przepływy pracy, zwiększyć dokładność i zaoszczędzić cenny czas.