Úvod
Aspose.Cells FOSS for Java poskytuje komplexní sadu funkcí pro tabulky pro aplikace Java 17. Vydáno pod licencí MIT a distribuováno jako standardní Maven artefakt, knihovna pokrývá vše od základního vytváření sešitů přes typované hodnoty buněk, bohaté formátování, validaci dat a AutoFilter — vše bez závislosti na Microsoft Office.
Tento příspěvek prochází hlavní oblasti funkcí s cílenými ukázkami kódu převzatými z
ověřeného rozhraní API. Všechny názvy tříd a metod uvedené níže existují v knihovně
a jsou k dispozici ve verzi 1.0.0.
Klíčové vlastnosti
Správa sešitu a listu
Třída Workbook implementuje AutoCloseable, takže se čistě integruje s
vzorem Java try-with-resources.
Můžete vytvořit prázdný sešit, načíst existující
soubor .xlsx, přejmenovat listy, přidávat nebo odstraňovat listy, nastavit aktivní list a
ovládat viditelnost záložek.
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");
}
Zadávané hodnoty buněk a vzorce
Třída Cell přijímá typované hodnoty prostřednictvím putValue() pro String, int, double,
boolean a LocalDateTime. Metoda getType() vrací hodnotu výčtu CellValueType — STRING, NUMBER, BOOLEAN, DATE_TIME nebo FORMULA — což usnadňuje rozvětvení podle typu hodnoty bez parsování řetězců. Řetězce vzorců jsou uloženy pomocí setFormula() a při otevření budou v Excelu přepočítány.
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");
}
Formátování buněk a styly
Formátování se aplikuje prostřednictvím objektu Style získaného z cell.getStyle() a zapisuje se zpět pomocí cell.setStyle(). Podobjekt Font vystavuje setBold() a setColor(). HorizontalAlignment řídí zarovnání textu — LEFT, CENTER nebo RIGHT. Vlastní formáty čísel používají řetězce formátu Excelu prostřednictvím style.setCustom(). Výška řádku a šířka sloupce jsou upravovány pomocí getRows().get(n).setHeight() a 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");
}
Validace dat
Pravidla pro ověřování dat jsou přidávána prostřednictvím sheet.getValidations().add(). KaždýValidation objekt přijímá ValidationType (např. WHOLE_NUMBER, DECIMAL, LIST)
a OperatorType (např. BETWEEN, GREATER_THAN). Meze vzorce jsou uloženy jako
řetězce pomocí setFormula1() a 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
AutoFilters umožňují koncovým uživatelům interaktivně filtrovat data v Excelu bez jakékoli další
konfigurace. Zavolejte ws.getAutoFilter().setRange() s rozsahem v notaci A1 pro
povolení řádku záhlaví filtru. Další sloupce filtru a vlastní kritéria lze
definovat pomocí FilterColumn a 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");
}
Nastavení stránky a ochrana listu
Třída PageSetup řídí velikost papíru, orientaci stránky a nastavení přizpůsobení stránce pro výstup připravený k tisku. Ochrana listu se aplikuje pomocí protect() s WorksheetProtectionModel, což umožňuje, aby konkrétní buňky zůstaly editovatelné, zatímco zbytek je uzamčen. Hyperlinky jsou spravovány pomocí HyperlinkCollection.
Rychlý start
Přidejte závislost do svého pom.xml:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
Vytvořte pracovní sešit se všemi hlavními funkcemi v méně než 20 řádcích:
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");
}
}
}
Podporované formáty
| Formát | Přípona | Číst | Zapisovat |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
Ukládání je v současné době omezeno na .xlsx. Knihovna ukládá a přenáší vzorce, ale nefunguje jako plnohodnotný výpočetní engine pro tabulky.
Open Source a licencování
Aspose.Cells FOSS for Java je vydán pod licencí MIT. Můžete jej volně používat, upravit a distribuovat v osobních, open-source a komerčních projektech bez omezení. Zdrojový kód je k dispozici na github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.