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()); // Sheet1Carregar 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()); // 1200Configuració 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 automaticallyConsells 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)sobrecells.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 evitarIndexOutOfBoundsException. - Nomena les teles amb claredat:
setName()després deadd()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
| Issue | Cause | Correcció |
|---|---|---|
WorkbookLoadException en el new Workbook(fileName) | Tràtxa de fitxer incorrecta o blocament del fitxatge | Verificar 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() - 1 | Check 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òria | Salvar 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 incorrecta | Assegura’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 valueResum de referència d’API
| Classe / mètode | Description |
|---|---|
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)”) |
LoadOptions | Configuració per a la càrrega del llibre de treball |
SaveFormat | Enum de constants del format (el format s’inverteix a partir d’extensió de fitxer; no passat al save()) |