Introducción

Aspose.Cells FOSS para Java ofrece un conjunto completo de capacidades de hoja de cálculo para aplicaciones Java 17. Lanzada bajo la licencia MIT y distribuida como un artefacto Maven estándar, la biblioteca cubre todo, desde la creación básica de libros de trabajo hasta valores de celda tipados, formato enriquecido, validación de datos y AutoFiltro, todo sin depender de Microsoft Office.

Esta publicación recorre las principales áreas de funcionalidad con ejemplos de código enfocados extraídos de
la superficie de API verificada. Todos los nombres de clases y métodos mostrados a continuación existen en la biblioteca
y están disponibles en la versión 1.0.0.


Características clave

Gestión de libros de trabajo y hojas de cálculo

La clase Workbook implementa AutoCloseable, por lo que se integra limpiamente con el
patrón Java try-with-resources. Puedes crear un libro de trabajo en blanco, cargar un archivo
.xlsx existente, renombrar hojas de cálculo, agregar o eliminar hojas, establecer la hoja activa y
controlar la visibilidad de las pestañas.

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

Valores de celda tipados y fórmulas

La clase Cell acepta valores tipados a través de putValue() para String, int, double, boolean y LocalDateTime. El método getType() devuelve un valor de enumeración CellValueTypeSTRING, NUMBER, BOOLEAN, DATE_TIME o FORMULA — lo que facilita ramificar según el tipo de valor sin analizar cadenas. Las cadenas de fórmula se almacenan con setFormula() y serán recalculadas por Excel al abrir.

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

Formato de celdas y estilos

El formato se aplica a través del objeto Style recuperado de cell.getStyle() y escrito de nuevo con cell.setStyle(). El sub‑objeto Font expone setBold() y setColor(). HorizontalAlignment controla la alineación del texto — LEFT, CENTER o RIGHT. Los formatos de número personalizados utilizan cadenas de formato de Excel a través de style.setCustom(). La altura de fila y el ancho de columna se ajustan mediante getRows().get(n).setHeight() y 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");
}

Validación de datos

Las reglas de validación de datos se añaden a través de sheet.getValidations().add(). Cada objeto Validation toma un ValidationType (p. ej., WHOLE_NUMBER, DECIMAL, LIST) y un OperatorType (p. ej., BETWEEN, GREATER_THAN). Los límites de fórmula se almacenan como cadenas mediante setFormula1() y 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 permiten a los usuarios finales filtrar datos de forma interactiva en Excel sin ninguna configuración adicional configuración. Llame a ws.getAutoFilter().setRange() con un rango en notación A1 para habilitar la fila de encabezado del filtro. Columnas de filtro adicionales y criterios personalizados pueden ser definidos mediante FilterColumn y 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");
}

Configuración de página y protección de hoja de cálculo

La clase PageSetup controla el tamaño del papel, la orientación de la página y la configuración de ajuste a la página para la salida lista para imprimir. La protección de la hoja de cálculo se aplica mediante protect() con un WorksheetProtectionModel, permitiendo que celdas específicas permanezcan editables mientras se bloquea el resto. Los hipervínculos se gestionan mediante HyperlinkCollection.


Inicio rápido

Agrega la dependencia a tu pom.xml:

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

Crea un libro de trabajo con todas las funciones principales en menos de 20 líneas:

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

Formatos compatibles

FormatoExtensiónLeerEscribir
Excel Open XML.xlsx

El guardado está actualmente limitado a .xlsx. La biblioteca almacena y realiza round‑trip de fórmulas, pero no funciona como un motor de cálculo de hoja de cálculo completo.


Código abierto y licencias

Aspose.Cells FOSS for Java se publica bajo la licencia MIT. Usted es libre de usar, modificar y distribuirlo en proyectos personales, de código abierto y comerciales sin restricción. El código fuente está disponible en github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.


Comenzando