Introducere

Aspose.Cells FOSS for Java oferă un set cuprinzător de capabilități pentru foi de calcul pentru aplicații Java 17. Lansată sub licența MIT și distribuită ca un artefact Maven standard, biblioteca acoperă totul, de la crearea de cărți de lucru de bază, prin valori de celule tipizate, formatare bogată, validare de date și AutoFilter — toate fără o dependență de Microsoft Office.

Acest articol parcurge principalele zone de funcționalitate cu exemple de cod concentrate preluate din
suprafața API-ului verificată. Toate numele de clase și metode afișate mai jos există în bibliotecă
și sunt disponibile în versiunea 1.0.0.


Caracteristici principale

Gestionarea registrului de lucru și a foii de lucru

Clasa Workbook implementează AutoCloseable astfel încât să se integreze perfect cu modelul Java try-with-resources. Puteți crea un registru de lucru gol, încărca un fișier .xlsx, redenumi foile de lucru, adăuga sau elimina foi, seta foaia activă și controla vizibilitatea filelor.

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");
}

Valori și formule de celule tipizate

Clasa Cell acceptă valori tipizate prin putValue() pentru String, int, double, boolean și LocalDateTime. Metoda getType() returnează o valoare enum CellValueTypeSTRING, NUMBER, BOOLEAN, DATE_TIME sau FORMULA — facilitând ramificarea pe tipul valorii fără a parsa șiruri. Șirurile de formulă sunt stocate cu setFormula() și vor fi recalculat de Excel la deschidere.

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");
}

Formatarea celulelor și stiluri

Formatarea este aplicată prin obiectul Style preluat din cell.getStyle() și scris înapoi cu cell.setStyle(). Sub-obiectul Font expune setBold() și setColor(). HorizontalAlignment controlează alinierea textului — LEFT, CENTER sau RIGHT. Formatele numerice personalizate utilizează șiruri de format Excel prin style.setCustom(). Înălțimea rândului și lățimea coloanei sunt ajustate prin 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");
}

Validare date

Regulile de validare a datelor sunt adăugate prin sheet.getValidations().add(). Fiecare
obiect Validation primește un ValidationType (de exemplu WHOLE_NUMBER, DECIMAL, LIST)
și un OperatorType (de exemplu BETWEEN, GREATER_THAN). Limitele formulei sunt stocate ca
șiruri prin 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");
}

Filtru automat

AutoFilters permit utilizatorilor finali să filtreze interactiv datele în Excel fără nicio configurare suplimentară. Apelați ws.getAutoFilter().setRange() cu un interval în notație A1 pentru a activa rândul de antet al filtrului. Coloane suplimentare de filtrare și criterii personalizate pot fi definite prin 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");
}

Configurare pagină și protecție foaie de lucru

Clasa PageSetup controlează dimensiunea hârtiei, orientarea paginii și setările de potrivire la pagină pentru ieșire pregătită pentru tipărire. Protecția foii de calcul este aplicată prin protect() cu un WorksheetProtectionModel, permițând anumitor celule să rămână editabile în timp ce restul este blocat. Legăturile hipertext sunt gestionate prin HyperlinkCollection.


Start rapid

Adăugați dependența la pom.xml:

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

Creează un workbook cu toate funcționalitățile majore în sub 20 de linii:

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");
        }
    }
}

Formate acceptate

FormatExtensieCitireScriere
Excel Open XML.xlsx

Salvarea este în prezent limitată la .xlsx. Biblioteca stochează și transferă formulele, dar nu funcționează ca un motor complet de calcul tabelar.


Open Source și Licențiere

Aspose.Cells FOSS pentru Java este lansat sub licența MIT. Sunteți liber să îl utilizați, modificați și distribuiți în proiecte personale, open-source și comerciale fără restricții. Codul sursă este disponibil la github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.


Începeți