Úvod

Aspose.Cells FOSS for Java je open-source knihovna Java 17, která umožňuje vývojářům vytvářet, načítat, upravovat a ukládat sešity Excel .xlsx kompletně na JVM — bez instalace Microsoft Office, bez nativních knihoven a bez komerční závislosti na runtime Aspose. Veřejné API se nachází v balíčku com.aspose.cells_foss a je vydáno pod licencí MIT, což jej činí vhodným pro osobní, open-source i komerční projekty.

Knihovna je distribuována jako standardní Maven artefakt a pokrývá základní model objektů OOXML tabulkových kalkulátorů: sešity, listy, buňky, styly a kolekce. Je postavena s Maven 3.9+ a cílí na Java 17+, přirozeně se integruje do jakéhokoli moderního Java build pipeline.

Přidejte závislost do svého pom.xml a budete připraveni generovat nebo zpracovávat sešity Excel z servletu, dávkového úkolu, funkce Lambda nebo jakéhokoli jiného serverového kontextu Java.


Klíčové vlastnosti

Správa sešitu a listu

Třída Workbook je vstupním bodem pro všechny operace s tabulkami. Implementuje AutoCloseable, takže se čistě integruje s vzorem try-with-resources. Můžete vytvářet nové sešity, načítat existující soubory .xlsx, přidávat a odstraňovat listy, přejmenovávat listy pomocí setName(), nastavit aktivní list a řídit viditelnost karet.

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

try (Workbook workbook = new Workbook()) {
    WorksheetCollection sheets = workbook.getWorksheets();
    Worksheet sheet = sheets.get(0);
    sheet.setName("Sales");
    workbook.save("sales.xlsx");
}

Hodnoty buněk a vzorce

Třída Cell podporuje ukládání typovaných hodnot pomocí putValue() pro řetězce, celá čísla, desetinná čísla, logické hodnoty a hodnoty LocalDateTime. Řetězce vzorců jsou uloženy pomocí setFormula() a budou při otevření přepočítány v Excelu. Typ hodnoty je zpřístupněn prostřednictvím CellValueTypeSTRING, NUMBER, BOOLEAN, DATE_TIME nebo FORMULA.

import com.aspose.cells_foss.Cell;
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(12500.75);
    Cell c1 = sheet.getCells().get("C1");
    c1.setFormula("=B1*1.2");
    workbook.save("values.xlsx");
}

Formátování buněk a styly

Formátování se provádí pomocí třídy Style, získané z cell.getStyle() a zapsané zpět pomocí cell.setStyle(). Můžete nastavit tučné písmo a barvu na Font, použít HorizontalAlignment a nastavit vlastní řetězce formátu čísel pomocí style.setCustom(). Výška řádku a šířka sloupce jsou řízeny pomocí getRows().get(n).setHeight() a getColumns().get(n).setWidth().

import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Cell;
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.5);
    Style style = cell.getStyle();
    style.getFont().setBold(true);
    style.setCustom("#,##0.00");
    cell.setStyle(style);
    workbook.save("styled.xlsx");
}

Ověřování dat a podmíněné formátování

Pravidla ověřování dat jsou přidávána pomocí sheet.getValidations().add(). Každý objekt Validation obsahuje ValidationType (např. WHOLE_NUMBER), OperatorType (např. BETWEEN) a řetězce vzorců pro hranice. Podmíněné formátování je přidáno pomocí sheet.getConditionalFormattings().add(), který vrací FormatConditionCollection, kde zadáte rozsahy buněk a podmínky.

import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
import com.aspose.cells_foss.OperatorType;
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");
}

AutoFiltry a nastavení stránky

AutoFiltry jsou konfigurovány voláním ws.getAutoFilter().setRange() s řetězcem rozsahu v notaci A1.
Objekt PageSetup řídí velikost papíru, orientaci a nastavení přizpůsobení stránce
pro výstup připravený k tisku. Ochrana listu se aplikuje pomocí protect() s
WorksheetProtectionModel.


Rychlý start

Přidejte Maven závislost do svého pom.xml:

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

Vytvořte sešit, naplňte buňky, aplikujte formátování a uložte:

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("Report");

            sheet.getCells().get("A1").putValue("Revenue");
            Cell cell = sheet.getCells().get("B1");
            cell.putValue(12500.75);

            Style style = cell.getStyle();
            style.getFont().setBold(true);
            style.setCustom("#,##0.00");
            cell.setStyle(style);

            sheet.getCells().getRows().get(0).setHeight(22.0);
            sheet.getCells().getColumns().get(1).setWidth(14.5);

            workbook.save("report.xlsx");
        }
    }
}

Podporované formáty

FormátPříponaČístZapisovat
Excel Open XML.xlsx

Ukládání je v současné době omezeno na .xlsx. Knihovna ukládá a přenáší vzorce, ale není plnohodnotným výpočetním enginem 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.


Začínáme