Treballar amb la gestió de fitxes de càlcul

Treballar amb la gestió de fitxes de càlcul

Treballar amb la gestió de fitxes de càlcul

Aquesta guia mostra com crear, carregar, modificar i guardar quadrils d’Excel utilitzant Aspose.Cells FOSS per Java. Aprendràs a treballar amb el programa de treball Excel. Workbook, WorksheetCollection, Worksheet, Cells, i Cell classes per a la gestió de fulls de càlcul d’extrem a extrem.


Creació d’un nou llibre de treball

Utilitza el constructor sense argument per crear un llibre de treball buit. Una única fulla de feina buida nominat Sheet1 s’afegeix automàticament.

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

Carregar un llibre de treball des d’un fitxer

Passar una ruta de fitxer a la pàgina d’accés. Workbook(fileName) constructor per obrir un existent .xlsx o de la seva .ods Utilitzar arxiu. Workbook(fileName, options) per subministrar LoadOptions quan necessites. per controlar la detecció de formats o el tractament de contrasenyes.

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

Carregar un llibre de treball des d’un flux

Workbook(stream) i de la Workbook(stream, options) acceptar qualsevol java.io.InputStream. Això és útil quan el fitxer prové d’un recurs de xarxa, un BLOB de base de dades o una array de bytes en memòria.

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

Accedir i gestionar les fulles de treball

Workbook.getWorksheets() retorna un WorksheetCollection.Recuperar fitxes per índice o per nom, iterar sobre totes les fulles i afegir o eliminar folles segons sigui necessari.

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

Llegir i escriure valors de cèl·lules

Navegar a una cèl·lula utilitzant Worksheet.getCells(), que retorna un Cells col·lecció. Recuperar un Cell per nom (per exemple:. "A1") o per indici de línia/columna basat en zero. putValue() per escriure valors primitius i getValue() / getStringValue() llegir les tornem.

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

Configuració de fórmules de cèl·lula

Assignar una cadena de fórmules a la cèl·lula via setFormula(). Aspose.Cells avalua fórmules quan es guarda la llibreta o quan el càlcul s’activa explícitament.

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 llibre de treball

Utilització: Workbook.save(fileName) per escriure el llibre de treball al disc. El format d’exportació és determinada per l’extensió de fitxer; ús .xlsx per a quadres de treball d’Excel.

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

Liberar recursos

Workbook instruments de treball AutoCloseable.Utilitzar un bloc de prova amb recursos per assegurar que el sistema d’ús del material s’utilitza correctament. Els recursos interns del llibre de treball es llancen immediatament després d’utilitzar-lo.

import com.aspose.cells.foss.Workbook;

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

Consells i millors pràctiques

  • Sempre utilitzeu recursos de prova (try (Workbook wb = new Workbook(...))) per a grans arxius per evitar mantenir oberts els gestors de fitxers.
  • Prefer cells.get(row, column) sobre cells.get(cellName) en bucles de calor; el sobrecarrega d’entiers evita l’anàlisi repetida del nom de cèl·lula.
  • Call workbook.getWorksheets().getCount() abans d’accedir a les fulles per índex per evitar IndexOutOfBoundsException.
  • Nomena les teles amb claredat: setName() després de add() així que el codi descendent pot busqueu-los pel nom en comptes d’un indexe fràgil.
  • No es dependi dels resultats de la fórmula immediatament després del tractament. setFormula(); salvar primer o Recàrrega si necessites calcular valors en la mateixa sessió.

Problemàtiques comuns

IssueCauseCorrecció
WorkbookLoadException en el new Workbook(fileName)Tràtxa de fitxer incorrecta o blocament del fitxatgeVerificar que la ruta existeix i és llegible; tancar altres aplicacions que contenen el fitxer.
get(index) llança IndexOutOfBoundsExceptionÍndex de la fulla més enllà getCount() - 1Check sheets.getCount() abans d’accedir; utilitzar add() per crear una nova pàgina
La cèl·lula de la fórmula torna buida getValue()Formules no calculades automàticament en memòriaSalvar el llibre de treball i tornar a carregar-lo per obtenir resultats de la fórmula
El fitxer de sortida està corromput després d’haver … save()Extensió de fitxer incorrectaAssegura’t que el nom del fitxer acabi amb: .xlsx; format és inferit de l’extensió

FAQ

Com canvio el nom d’una fitxa de treball?

Recuperar el Worksheet objecte per índex des de WorksheetCollection i trucar. setName(name) amb el nou nom d’exhibició:

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

Com puc comprovar quantes fulles té un llibre de treball?

Call getCount() en el WorksheetCollection retornada per: Workbook.getWorksheets() Per obtenir el nombre total de fulles:

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

Puc afegir múltiples pàgines en una sola trucada?

No, truca. worksheets.add(sheetName) Cada trucada torna l’índex de la pàgina. pàgina de la nova creació.

Com puc comprovar el tipus d’un valor de cèl·lula?

Recuperar el Cell per nom i crida. getType(), que retorna un CellValueType valor enum:

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

Resum de referència d’API

Classe / mètodeDescription
Workbook()Crea un llibre de treball buit amb una fulla buida
Workbook(fileName)Carregar un llibre de treball des d’una ruta de fitxer
Workbook(stream)Carrega un llibre de treball des d’un bloc de dades. InputStream
Workbook(fileName, options)Carrega un llibre de treball amb: LoadOptions
Workbook.getWorksheets()Retorna el nombre de punts. WorksheetCollection
Workbook.save(fileName)Salva a un fitxer (format inferit de l’extensió)
Workbook.save(stream, format)Salva a un flux amb explícita SaveFormat
WorksheetCollection.get(index)Folla de rendiments per índex basat en zero
WorksheetCollection.get(name)Folla de devolucions per nom
WorksheetCollection.add(sheetName)Afegeix una fulla amb nom; torna el seu índex
WorksheetCollection.getCount()Número de fulles en el llibre de treball
WorksheetCollection.removeAt(sheetName)Elimina una pàgina pel seu nom
Worksheet.getCells()Retorna el nombre de punts. Cells col·lecció per a aquesta ficha
Worksheet.getName() / setName()Obtén o fixa el nom de la pesta del full
Cells.get(cellName)Retorna a Cell per nom (per exemple, “A1”)
Cells.get(row, column)Retorna a Cell per filas/columnes basades en zero.
Cell.putValue(value)Escriu un valor a la cèl·lula.
Cell.getValue()Llegeix el valor de la cèl·lula com: Object
Cell.getStringValue()Llegeix el valor de la cèl·lula com a String
Cell.setFormula(formula)S’estableix una cadena de fórmules (per exemple “=SUM(A1:A2)”)
LoadOptionsConfiguració per a la càrrega del llibre de treball
SaveFormatEnum de constants del format (el format s’inverteix a partir d’extensió de fitxer; no passat al save())

See Also

 Català