Lucrarea cu gestionarea fișelor de calcul
Lucrarea cu gestionarea fișelor de calcul
Acest ghid arată cum să creați, încărcați și salvați cartile de lucru Excel folosind Aspose.Cells FOSS pentru Java. Veți învăța cum sa lucrați cu programul Microsoft Office Access (MS-DOS). Workbook, WorksheetCollection, Worksheet, Cells, și Cell clasele pentru gestionarea completă a fișelor de calcul.
Crearea unui nou caiet de lucru
Utilizați constructorul fără argumente pentru a crea o carte de lucru goală. O singură foaie de calcul golă numit Sheet1 este adăugată automat.
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Încărcarea unei cărți de lucru dintr-un fișier
Treci un fişier către … Workbook(fileName) constructor pentru a deschide o existentă .xlsx sau de: .ods Foloseşte fişierul. Workbook(fileName, options) să furnizeze LoadOptions Când ai nevoie. pentru a controla detectarea formatului sau manipularea parolei.
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);Încărcarea unui caiet de lucru dintr-un flux
Workbook(stream) și de: Workbook(stream, options) accepta orice java.io.InputStream. Acest lucru este util atunci când fișierul provine de la o resursă de rețea, un BLOB baza de date sau un Aria de byte în memorie.
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());
}Accesarea și gestionarea fișelor de lucru
Workbook.getWorksheets() returnează un WorksheetCollection.Obțineți fișele după index sau prin nume, iterate pe toate foile și adaugă sau eliminați folile după cum este necesar.
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());Citirea și scrierea valorilor celulelor
Navigati la o celulă folosind Worksheet.getCells(), care returnează o Cells colectare. Obține un Cell după nume (de exemplu:. "A1") sau prin index pe bază de zero. putValue() să scrie valori primitive şi getValue() / getStringValue() să citească. - Să-i întoarcem.
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()); // 1200Setarea formulelor de celule
Ascrie un șir de formule unei celule prin: setFormula(). Aspose.Cells evaluează formule când cartea de lucru este salvată sau atunci când calculul este declanșat în mod explicit.
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)Salvarea unui caiet de lucru
Utilizare: Workbook.save(fileName) Pentru a scrie cartea de lucru pe disc. Formatul output este determinată de extensie a fișierului; utilizarea .xlsx pentru cărțile de lucru 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");Eliberarea resurselor
Workbook echipamente de lucru AutoCloseable.Utilizaţi un bloc de încercare a resurselor pentru a asigura că resursele interne ale cărții de lucru sunt eliberate imediat după utilizare.
import com.aspose.cells.foss.Workbook;
try (Workbook workbook = new Workbook("data/large.xlsx")) {
workbook.save("output/large_modified.xlsx");
}
// workbook.close() called automaticallySfaturi şi cele mai bune practici
- Utilizaţi întotdeauna resurse de încercare (
try (Workbook wb = new Workbook(...))) pentru mărfuri mari fișiere pentru a evita ținerea de manșoare deschise. - Preferă
cells.get(row, column)Încheiat.cells.get(cellName)în bucle fierbinți; supraîncărcarea integer evită analiza repetată a numelui celulei. - Sună-mă.
workbook.getWorksheets().getCount()înainte de a accesa fișele după index pentru a evitaIndexOutOfBoundsException. - Numele de foile dvs. în mod explicit cu:
setName()după ce:add()Deci codul de mai jos poate fi: Caută-le după nume, nu prin index fragil. - Nu vă bazaţi pe rezultatele formulare imediat după administrarea medicamentului.
setFormula(); să salveze prima sau Reload dacă aveți nevoie de valori calculate în aceeași sesiune.
Probleme comune
| Numărul de date | Cauza | Fixare |
|---|---|---|
WorkbookLoadException în new Workbook(fileName) | Drumul fişierului incorect sau fişele blocate | Verificați că calea există și este lizibilă; închideți alte aplicații care conțin fișierul |
get(index) aruncă IndexOutOfBoundsException | Indicele foliei de peste getCount() - 1 | Verifică. sheets.getCount() înainte de accesare; utilizarea add() pentru a crea o nouă foaie de date. |
Celulară de formulă returnă gol getValue() | Formulare care nu sunt calculate automat în memorie | Salvați cartea de lucru și reîncărcați-o pentru a obține rezultatele formulei |
Fişierul de ieşire este corupt după … save() | Extensie greșită a fișierului | Asigură-te că numele fişierului se termină cu: .xlsx; formatul este dedus din extensie |
FAQ
Cum renumez o foaie de lucru?
Obţineţi… Worksheet Obiectul după index de la WorksheetCollection şi sună-l. setName(name) cu noul nume de afișare:
workbook.getWorksheets().get(0).setName("Sales Data");Cum pot verifica câte foi are un caiet de lucru?
Sună-mă. getCount() în cazul WorksheetCollection returnată de: Workbook.getWorksheets() pentru a obține numărul total de foi:
int count = workbook.getWorksheets().getCount();Pot să adaug mai multe foile într-o singură apelare?
Nu, sună-mă. worksheets.add(sheetName) Fiecare apel returnează indicele fişierului de date. fișă nou creată.
Cum verific tipul de valoare a unei celule?
Obţineţi… Cell Numele şi apelul. getType(), care returnează o CellValueType valoarea enum:
Cell cell = cells.get("A1");
System.out.println(cell.getType()); // CellValueType enum valueRezultatele de la data aplicării.
| Clasa / metoda | Descriere: |
|---|---|
Workbook() | Creează o carte de lucru goală cu o foaie golă. |
Workbook(fileName) | Încărcătură a unei cărţi de lucru dintr-un fişier . |
Workbook(stream) | Încărcă o carte de lucru dintr-un InputStream |
Workbook(fileName, options) | Încărcă cartea de lucru cu: LoadOptions |
Workbook.getWorksheets() | Retoară data de la intrare. WorksheetCollection |
Workbook.save(fileName) | Salvează într-un fișier (format dedus din extensie) |
Workbook.save(stream, format) | Salvează la un flux cu explicit SaveFormat |
WorksheetCollection.get(index) | Foaie de rambursare pe indice bazate pe zero |
WorksheetCollection.get(name) | Foaie de rambursare după nume |
WorksheetCollection.add(sheetName) | Adăuga o foaie numită; returnează indexul acesteia |
WorksheetCollection.getCount() | Numărul de foi din carnetul de lucru |
WorksheetCollection.removeAt(sheetName) | Îndepărtează o foaie după nume. |
Worksheet.getCells() | Retoară data de la intrare. Cells colectare pentru această fișă |
Worksheet.getName() / setName() | Obține sau stabilește numele fișei de tabă |
Cells.get(cellName) | Retoară o Cell după nume (de exemplu, “A1”) |
Cells.get(row, column) | Retoară o Cell după rând/columnă pe bază de zero |
Cell.putValue(value) | Scrie o valoare în celulă. |
Cell.getValue() | Citește valoarea celulei ca: Object |
Cell.getStringValue() | Citește valoarea celulei ca un String |
Cell.setFormula(formula) | Se stabilește un șir de formule (de exemplu “=SUM(A1:A2)”) |
LoadOptions | Configurația pentru încărcarea caietului de lucru |
SaveFormat | Numărul de constante format (format este dedus din extensie fișier; nu a trecut la save()) |