Wprowadzenie

Aspose.Cells FOSS for Java zapewnia kompleksowy zestaw możliwości arkuszy kalkulacyjnych dla aplikacji Java 17. Udostępniona na licencji MIT i dystrybuowana jako standardowy artefakt Maven, biblioteka obejmuje wszystko, od podstawowego tworzenia skoroszytów, przez typowane wartości komórek, bogate formatowanie, walidację danych, po AutoFilter — wszystko bez zależności od Microsoft Office.

Ten post przechodzi przez główne obszary funkcji z
zweryfikowanego interfejsu API. Wszystkie nazwy klas i metod pokazane poniżej istnieją w bibliotece
i są dostępne w wersji 1.0.0.


Kluczowe funkcje

Zarządzanie skoroszytem i arkuszem

Klasa Workbook implementuje AutoCloseable, więc integruje się płynnie z wzorcem Java try-with-resources. Możesz utworzyć pusty skoroszyt, wczytać istniejący .xlsx plik, zmienić nazwy arkuszy, dodać lub usunąć arkusze, ustawić aktywny arkusz oraz kontrolować widoczność zakładek.

import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

try (Workbook workbook = new Workbook()) {
    Worksheet sheet = workbook.getWorksheets().get(0);
    sheet.setName("Q1 Report");
    workbook.getWorksheets().addSheet("Summary");
    workbook.save("report.xlsx");
}

Wartości i formuły wprowadzane do komórek

Klasa Cell przyjmuje wartości typowane za pośrednictwem putValue() dla String, int, double, boolean i LocalDateTime. Metoda getType() zwraca wartość wyliczenia CellValueTypeSTRING, NUMBER, BOOLEAN, DATE_TIME lub FORMULA — co ułatwia rozgałęzianie się w zależności od typu wartości bez parsowania ciągów znaków. Łańcuchy formuł są przechowywane przy użyciu setFormula() i będą przeliczane ponownie przez Excel przy otwarciu.

import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

try (Workbook workbook = new Workbook()) {
    Worksheet sheet = workbook.getWorksheets().get(0);
    Cell a1 = sheet.getCells().get("A1");
    a1.putValue("Revenue");
    Cell b1 = sheet.getCells().get("B1");
    b1.putValue(42500.00);
    Cell c1 = sheet.getCells().get("C1");
    c1.setFormula("=B1*1.2");
    // Check type
    assert b1.getType() == CellValueType.NUMBER;
    assert c1.getType() == CellValueType.FORMULA;
    workbook.save("values.xlsx");
}

Formatowanie komórek i style

Formatowanie jest stosowane za pośrednictwem obiektu Style pobranego z cell.getStyle() i zapisywanego z powrotem przy użyciu cell.setStyle(). Podobiekt Font udostępnia setBold() i setColor(). HorizontalAlignment kontroluje wyrównanie tekstu — LEFT, CENTER lub RIGHT. Niestandardowe formaty liczb używają ciągów formatów Excel za pośrednictwem style.setCustom(). Wysokość wiersza i szerokość kolumny są dostosowywane przy użyciu getRows().get(n).setHeight() i getColumns().get(n).setWidth().

import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

try (Workbook workbook = new Workbook()) {
    Worksheet sheet = workbook.getWorksheets().get(0);
    Cell cell = sheet.getCells().get("B1");
    cell.putValue(9999.50);
    Style style = cell.getStyle();
    style.getFont().setBold(true);
    style.setCustom("#,##0.00");
    cell.setStyle(style);
    sheet.getCells().getRows().get(0).setHeight(24.0);
    sheet.getCells().getColumns().get(1).setWidth(16.0);
    workbook.save("styled.xlsx");
}

Walidacja danych

Reguły walidacji danych są dodawane poprzez sheet.getValidations().add(). Każdy obiekt Validation przyjmuje ValidationType (np. WHOLE_NUMBER, DECIMAL, LIST) oraz OperatorType (np. BETWEEN, GREATER_THAN). Granice formuły są przechowywane jako ciągi znaków za pomocą setFormula1() i setFormula2().

import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.OperatorType;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

try (Workbook workbook = new Workbook()) {
    Worksheet sheet = workbook.getWorksheets().get(0);
    int vi = sheet.getValidations().add(new CellArea(1, 0, 10, 0));
    Validation validation = sheet.getValidations().get(vi);
    validation.setType(ValidationType.WHOLE_NUMBER);
    validation.setOperator(OperatorType.BETWEEN);
    validation.setFormula1("1");
    validation.setFormula2("100");
    workbook.save("validated.xlsx");
}

AutoFilter

AutoFiltry pozwalają użytkownikom końcowym interaktywnie filtrować dane w Excelu bez dodatkowej konfiguracji. Wywołaj ws.getAutoFilter().setRange() z zakresem w notacji A1, aby włączyć wiersz nagłówka filtru. Dodatkowe kolumny filtrów i niestandardowe kryteria można zdefiniować za pomocą FilterColumn i AutoFilterCustomFilter.

import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

try (Workbook workbook = new Workbook()) {
    Worksheet sheet = workbook.getWorksheets().get(0);
    sheet.getCells().get("A1").putValue("Product");
    sheet.getCells().get("B1").putValue("Qty");
    sheet.getAutoFilter().setRange("A1:B1");
    workbook.save("filtered.xlsx");
}

Ustawienia strony i ochrona arkusza

Klasa PageSetup kontroluje rozmiar papieru, orientację strony i ustawienia dopasowania do strony
dla wyjścia gotowego do druku. Ochrona arkusza jest stosowana za pomocą protect() z
WorksheetProtectionModel, umożliwiając pozostawienie wybranych komórek edytowalnych przy jednoczesnym zablokowaniu
pozostałych. Hyperlinki są zarządzane za pomocą HyperlinkCollection.


Szybki start

Dodaj zależność do swojego pom.xml:

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>cells-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Utwórz skoroszyt ze wszystkimi głównymi funkcjami w mniej niż 20 wierszach:

import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

public class QuickStart {
    public static void main(String[] args) {
        try (Workbook workbook = new Workbook()) {
            Worksheet sheet = workbook.getWorksheets().get(0);
            sheet.setName("Sales");
            sheet.getCells().get("A1").putValue("Revenue");
            Cell b1 = sheet.getCells().get("B1");
            b1.putValue(42500.00);
            Style style = b1.getStyle();
            style.getFont().setBold(true);
            style.setCustom("#,##0.00");
            b1.setStyle(style);
            sheet.getAutoFilter().setRange("A1:B1");
            workbook.save("sales.xlsx");
        }
    }
}

Obsługiwane formaty

FormatRozszerzenieOdczytZapis
Excel Open XML.xlsx

Zapisywanie jest obecnie ograniczone do .xlsx. Biblioteka przechowuje i przekazuje dalej formuły, ale nie działa jako pełny silnik obliczeniowy arkusza kalkulacyjnego.


Open Source i licencjonowanie

Aspose.Cells FOSS for Java jest udostępniony na licencji MIT. Masz swobodę używać, modyfikować i rozpowszechniać go w projektach osobistych, open‑source i komercyjnych bez ograniczeń. Kod źródłowy jest dostępny pod adresem github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.


Rozpoczęcie