Arbeta med Spreadsheet Management

Arbeta med Spreadsheet Management

Arbeta med Spreadsheet Management

Denna guide visar hur man skapar, ladda, modifierar och sparar Excel-arbetsböcker med Aspose.Cells FOSS för Java. Workbook, WorksheetCollection, Worksheet, Cells,och Cell Kurser för end-to-end spreadsheet management.


Skapa en ny arbetsbok

Använd ingen argumentkonstruktorn för att skapa en tom arbetsbok. En enda vit arbetsblad Namnade Sheet1 Läggs automatiskt till.

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

Ladda upp en arbetsbok från ett arkiv

Gå igenom en filvägen till den Workbook(fileName) Byggaren öppnar en befintlig .xlsx eller .ods filen. användning Workbook(fileName, options) att leverera LoadOptions När du behöver Kontrollera formatdetektion eller lösenordshantering.

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

Ladda upp en arbetsbok från ett ström

Workbook(stream) och Workbook(stream, options) accepterar någon java.io.InputStream. Detta är användbart när filen kommer från en nätverksresurs, en BLOB-databas eller en In-minnes byte 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());
}

Tillgång och hantering av arbetsblad

Workbook.getWorksheets() Återkommer A WorksheetCollection.Retry listor av index eller genom namn, iterera över alla blad och lägga till eller ta bort bladen som behövs.

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

Läsning och skrivande cellvärden

Navigera till en cell med hjälp av Worksheet.getCells(),som återvänder till A Cells och samlingen. Reträva A Cell med namn (t.ex. "A1") eller med nollbaserad rad/kolumnindex. Använd putValue() att skriva primitiva värden och getValue() / getStringValue() att läsa De tillbaka.

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

Ställa in cellformler

Tilldela en formel sträng till en cell via setFormula().Aspose.Cells utvärderar formler när arbetsboken sparas eller när beräkningen uttryckligen startas.

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)

Spara en arbetsbok

Användning Workbook.save(fileName) att skriva arbetsboken till skivan. utgångsformat är bestäms av filändelsen; användning .xlsx för Excel arbetsböcker.

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

frigör resurser

Workbook Implementation AutoCloseable.Använd en try-with-resurs block för att säkerställa att Arbetsbokens interna resurser släpps omedelbart efter användning.

import com.aspose.cells.foss.Workbook;

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

Tips och bästa praxis

  • Använd alltid try-with resurser (try (Workbook wb = new Workbook(...))för stor filer för att undvika att hålla filhandlar öppna.
  • Prefer cells.get(row, column) över cells.get(cellName) i värmehål; den fullständig överbelastning undviker upprepade cellnamnparsningar.
  • Call workbook.getWorksheets().getCount() innan du får tillgång till indexblad för att undvika IndexOutOfBoundsException.
  • Namnge dina ark uttryckligen med setName() Efter att add() Så kan downstream-koden Se upp dem genom namn snarare än genom bräckliga index.
  • Lita inte på formeln resultat omedelbart efter setFormula();• Spara först eller omlastning om du behöver beräknade värden i samma session.

Vanliga frågor

IssueCauseFixar
WorkbookLoadExceptionnew Workbook(fileName)Fel filvägen eller låst filenKontrollera att vägen finns och är läsbar; stäng andra program som håller filen
get(index) kastar IndexOutOfBoundsExceptionIndex överlägsen getCount() - 1Check sheets.getCount() före användning; användningen av add() Att skapa en ny plattform
Formelcellen återvänder tom getValue()Formler som inte är självberäknade i minnetSpara arbetsboken och ladda den om för att få formelresultat
Utgångsfilen är korrupt efter save()Fel filförlängningSe till att filnamnet slutar med .xlsx;• Format är infört från förlängningen

FAQ

Hur ska jag byta namn på ett arbetsblad?

återställer den Worksheet index från objektet WorksheetCollection och ringer setName(name) med den nya displaynamnet:

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

Hur kan jag kolla hur många ark en arbetsbok har?

Call getCount() På den WorksheetCollection återvände till Workbook.getWorksheets() För att få det totala antalet arbetsblad:

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

Kan jag lägga till flera ark i ett samtal?

No. Kallande worksheets.add(sheetName) varje samtal returnerar indexet för Nyligen skapad skivor.

Hur kontrollerar jag typ av cellvärde?

återställer den Cell Namn och ringa getType(),som återvänder till A CellValueType Enum värde:

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

API Referens sammanfattning

Klass / MetodBeskrivning
Workbook()Skapa en tom arbetsbok med ett vitt blad
Workbook(fileName)Ladda upp en arbetsbok från ett filvägar
Workbook(stream)Ladda upp en arbetsbok från ett InputStream
Workbook(fileName, options)Ladda upp en arbetsbok med LoadOptions
Workbook.getWorksheets()återvänder till den WorksheetCollection
Workbook.save(fileName)Spara till en fil (format som härrör från förlängningen)
Workbook.save(stream, format)Spara till en ström med explicit SaveFormat
WorksheetCollection.get(index)Returnerar listan med nollbaserad index
WorksheetCollection.get(name)Returnerar ark efter namn
WorksheetCollection.add(sheetName)Lägg till ett namn; returnerar indexet
WorksheetCollection.getCount()Antal ark i arbetsboken
WorksheetCollection.removeAt(sheetName)Ta bort ett blad efter namn
Worksheet.getCells()återvänder till den Cells Samlingar för denna lista
Worksheet.getName() / setName()Få eller ange fliken tab namn
Cells.get(cellName)Återvänder A Cell genom namn (t.ex. ”A1”)
Cells.get(row, column)Återvänder A Cell genom nollbaserad rad/kolumn
Cell.putValue(value)Skriv ett värde till cellen
Cell.getValue()Läs cellvärdet som Object
Cell.getStringValue()Läs cellvärdet som ett String
Cell.setFormula(formula)Ställ en formelsträng (t.ex. “=SUM(A1:A2)”)
LoadOptionsKonfiguration för arbetsbok laddning
SaveFormatEnum av formatkonstanser (format är infört från filändelsen; inte överfört till save())

Se även

 Svenska