Trabajar con la gestión de Spreadsheet

Trabajar con la gestión de Spreadsheet

Trabajar con la gestión de Spreadsheet

Este guía muestra cómo crear, cargar, modificar y salvar los libros de trabajo de Excel utilizando Aspose.Cells FOSS para Java. Workbook, WorksheetCollection, Worksheet, Cells,y, Cell Curso de Gestión de la Fira Final.


Crear un nuevo libro de trabajo

Utilice el constructor sin argumento para crear un libro de trabajo vacío. Nombre Sheet1 Se añade automáticamente.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
System.out.println("Sheet name: " + sheet.getName()); // Sheet1

Cargar un libro de trabajo desde un archivo

Pasar un archivo a la Workbook(fileName) El constructor abre una actual .xlsx o .ods El archivo. uso Workbook(fileName, options) para suministrar LoadOptions Cuando necesitas para controlar la detección de formato o el manejo de contraseñas.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.LoadOptions;

// Simple load
Workbook workbook = new Workbook("data/report.xlsx");

// Load with explicit options
LoadOptions opts = new LoadOptions();
Workbook workbookWithOpts = new Workbook("data/report.xlsx", opts);

Cargar un libro de trabajo desde una corriente

Workbook(stream) y Workbook(stream, options) Acceptar cualquier java.io.InputStream. Esto es útil cuando el archivo proviene de una red, un banco de datos BLOB o un en memoria de la array.

import com.aspose.cells.foss.Workbook;
import java.io.FileInputStream;
import java.io.InputStream;

try (InputStream is = new FileInputStream("data/template.xlsx")) {
    Workbook workbook = new Workbook(is);
    System.out.println("Worksheets: " + workbook.getWorksheets().getCount());
}

Acceso y gestión de las tablas de trabajo

Workbook.getWorksheets() Volver a WorksheetCollection.- Recuperar las hojas por índice o por nombre, iterate sobre todas las hojas y añade o elimina hojes según sea necesario.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();

// Access by index
Worksheet first = sheets.get(0);
System.out.println(first.getName()); // Sheet1

// Add a named sheet
int idx = sheets.add("Summary");
Worksheet summary = sheets.get(idx);
summary.setName("Summary");

// Iterate all sheets
for (Worksheet ws : sheets) {
    System.out.println("Sheet: " + ws.getName());
}

// Remove a sheet by name
sheets.removeAt("Sheet1");
System.out.println("Remaining sheets: " + sheets.getCount());

Leer y escribir valores celulares

Navegar a una célula utilizando Worksheet.getCells(),que devuelve a Cells La colección. Recuperar a Cell por nombre (por ejemplo,. "A1") o por índice de línea/columna basado en cero. putValue() para escribir valores primitivos y getValue() / getStringValue() para leer de los de vuelta.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Worksheet;
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
Cells cells = sheet.getCells();

// Write values
cells.get("A1").putValue("Product");
cells.get("B1").putValue("Units Sold");

// Write by row/column index (0-based)
Cell a2 = cells.get(1, 0);
a2.putValue("Widget A");

Cell b2 = cells.get(1, 1);
b2.putValue(1200);

// Read back
System.out.println(a2.getStringValue()); // Widget A
System.out.println(b2.getValue());       // 1200

Formularios de células

Asignar una línea de fórmula a una célula mediante setFormula().Aspose.Células evalúan las fórmulas cuando se salva el libro de trabajo o cuando la calculada es desactivada explícitamente.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Cells cells = sheets.get(0).getCells();

cells.get("A1").putValue(100);
cells.get("A2").putValue(200);

Cell a3 = cells.get("A3");
a3.setFormula("=SUM(A1:A2)");
System.out.println("Formula: " + a3.getFormula()); // =SUM(A1:A2)

Salvar un libro de trabajo

Uso Workbook.save(fileName) para escribir el libro de trabajo en disco.El formato de salida es determinado por la extensión del archivo; uso de .xlsx Para Excel, los libros de trabajo.

import com.aspose.cells.foss.Workbook;

Workbook workbook = new Workbook();
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello");

// Save to file -- format inferred from .xlsx extension
workbook.save("output/result.xlsx");

Liberación de recursos

Workbook implantaciones AutoCloseable.Utilice un bloque de recursos para asegurar el Los recursos internos del libro de trabajo se liberan inmediatamente después de su uso.

import com.aspose.cells.foss.Workbook;

try (Workbook workbook = new Workbook("data/large.xlsx")) {
    workbook.save("output/large_modified.xlsx");
}
// workbook.close() called automatically

Consejos y mejores prácticas

  • Siempre se utilizan los recursos (try (Workbook wb = new Workbook(...))Para el gran Los archivos para evitar que los archivo se abren.
  • Preferimos cells.get(row, column) Sobre cells.get(cellName) en las calles calientes; el El sobrecargo completo evita la parsura repetida de los nombres celulares.
  • llamadas workbook.getWorksheets().getCount() antes de acceder a las hojas por índice para evitar IndexOutOfBoundsException.
  • Nombre de sus cartas con explicación setName() Después de add() El código downstream puede ser Se trata de un nombre en lugar de una indicación frágil.
  • No confíe en los resultados de la fórmula inmediatamente después de que se produzca setFormula();• Salva primero o recargar si necesita valores calculados en la misma sesión.

Problemas comunes

ProblemasCausasFixado
WorkbookLoadException En el new Workbook(fileName)Paseo de archivo incorrecto o bloqueadoVerificar el camino existe y es leible; cerrar otras aplicaciones que mantienen el archivo
get(index) lanzar IndexOutOfBoundsExceptionIndicadores más allá de getCount() - 1Verificar sheets.getCount() antes de acceder; uso add() Crear una nueva hoja de
La célula de la fórmula vuelve vacía getValue()Formulas no auto-calculadas en memoriaSalva el libro de trabajo y recarga para obtener resultados de la fórmula
El archivo de salida es corrupto después de save()Extensiones de archivo equivocadasAsegúrese de que el nombre del archivo termina con .xlsx;El formato se deriva de la extensión

FAQ

¿Cómo renomear un taller?

Recuperar el Worksheet El objeto por índice de WorksheetCollection y llamar setName(name) Con el nuevo nombre de la exposición:

workbook.getWorksheets().get(0).setName("Sales Data");

¿Cómo puedo comprobar cuántas hojas tiene un libro de trabajo?

llamadas getCount() En el WorksheetCollection devuelto por Workbook.getWorksheets() Para obtener el número total de trabajos:

int count = workbook.getWorksheets().getCount();

¿Puedo añadir varias hojas en una sola llamada?

No. llamadas worksheets.add(sheetName) cada llamado devuelve el índice del recientemente creado el disco.

¿Cómo puedo comprobar el tipo de valor de una célula?

Recuperar el Cell por nombre y llamado getType(),que devuelve a CellValueType Valor enum:

Cell cell = cells.get("A1");
System.out.println(cell.getType()); // CellValueType enum value

Sumación de referencia API

Clase / MétodoDescripción
Workbook()Crea un libro de trabajo vacío con una hoja blanca
Workbook(fileName)Carga un libro de trabajo desde una ruta de archivo
Workbook(stream)Carga un libro de trabajo desde una InputStream
Workbook(fileName, options)Carga un libro de trabajo con LoadOptions
Workbook.getWorksheets()De vuelta la WorksheetCollection
Workbook.save(fileName)Salvaciones a un archivo (formato derivado de la extensión)
Workbook.save(stream, format)Ahorra a un flujo con explicación SaveFormat
WorksheetCollection.get(index)Retorno de la hoja por índice basado en cero
WorksheetCollection.get(name)Retorno de la hoja por nombre
WorksheetCollection.add(sheetName)Addique una hoja nombrada; devolve su índice
WorksheetCollection.getCount()Número de hojas en el libro de trabajo
WorksheetCollection.removeAt(sheetName)Removemos una hoja por nombre
Worksheet.getCells()De vuelta la Cells Colección para esta hoja
Worksheet.getName() / setName()Obtenga o establece el nombre de la tabla de hoja
Cells.get(cellName)Volver a Cell por nombre (por ejemplo, “A1”)
Cells.get(row, column)Volver a Cell por línea/columna basada en cero
Cell.putValue(value)Escribe un valor a la célula
Cell.getValue()El valor de la célula se lea como Object
Cell.getStringValue()El valor de la célula como una String
Cell.setFormula(formula)Conexión de una línea de fórmula (por ejemplo, “=SUM(A1:A2)”)
LoadOptionsConfiguración para cargar un libro de trabajo
SaveFormatEnum de constantes de formato (el formato se deriva de la extensión del archivo; no se pasa a save())

Ver también

 Español