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 CellValueType — STRING, 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() zWorksheetProtectionModel, 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
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| 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.