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()); // Sheet1Ladda 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()); // 1200Stä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 automaticallyTips 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)övercells.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 undvikaIndexOutOfBoundsException. - Namnge dina ark uttryckligen med
setName()Efter attadd()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
| Issue | Cause | Fixar |
|---|---|---|
WorkbookLoadException på new Workbook(fileName) | Fel filvägen eller låst filen | Kontrollera att vägen finns och är läsbar; stäng andra program som håller filen |
get(index) kastar IndexOutOfBoundsException | Index överlägsen getCount() - 1 | Check 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 minnet | Spara arbetsboken och ladda den om för att få formelresultat |
Utgångsfilen är korrupt efter save() | Fel filförlängning | Se 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 valueAPI Referens sammanfattning
| Klass / Metod | Beskrivning |
|---|---|
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)”) |
LoadOptions | Konfiguration för arbetsbok laddning |
SaveFormat | Enum av formatkonstanser (format är infört från filändelsen; inte överfört till save()) |