Lucrarea cu gestionarea fișelor de calcul

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

Setarea 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 automatically

Sfaturi ş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 evita IndexOutOfBoundsException.
  • 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 dateCauzaFixare
WorkbookLoadException în new Workbook(fileName)Drumul fişierului incorect sau fişele blocateVerificați că calea există și este lizibilă; închideți alte aplicații care conțin fișierul
get(index) aruncă IndexOutOfBoundsExceptionIndicele foliei de peste getCount() - 1Verifică. 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 memorieSalvaț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șieruluiAsigură-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 value

Rezultatele de la data aplicării.

Clasa / metodaDescriere:
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)”)
LoadOptionsConfigurația pentru încărcarea caietului de lucru
SaveFormatNumărul de constante format (format este dedus din extensie fișier; nu a trecut la save())

Vezi și:

 Română