Számlalapkezeléssel való munka
Számlalapkezeléssel való munka
Ez az útmutató bemutatja, hogyan kell létrehozni, feltölteni, módosítani és menteni Excel munkafüzeteket használva Aspose.Cells FOSS for Java. Megtanulják, hogyan kell dolgozni a Workbook, WorksheetCollection, Worksheet, Cells, és Cell a táblázat vég-vég kezelésére szolgáló osztályok.
Új munkafüzet létrehozása
Egyetlen üres munkalap létrehozásához használd az argumentum nélküli konstruktort. néven Sheet1 automatikusan hozzáadódik.
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()); // Sheet1Munkafüzet betöltése fájltól
Adjon át egy fájl útvonalat a Workbook(fileName) a meglévő konstruktor .xlsx vagy .ods - Használja a fájlt. Workbook(fileName, options) szállítani LoadOptions ha szükséged van rá. a formátum felismerésének vagy a jelszó kezelésének ellenőrzése.
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);Munkafüzet betöltése egy folyóból
Workbook(stream) és a Workbook(stream, options) elfogadni a java.io.InputStream. Ez hasznos, ha a fájl egy hálózati forrásból, egy adatbázis BLOB-ból vagy egy a memóriában lévő byte-sorozat.
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());
}Munkalapok elérése és kezelése
Workbook.getWorksheets() visszaadja a WorksheetCollection.A listák index szerinti keresése vagy név szerint, minden lapot megismételve, és szükség szerint lapokat hozzáadva vagy eltávolítva.
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());Cella értékek olvasása és írása
A cellához navigáljon a következőkkel: Worksheet.getCells(), ami a Cells gyűjtemény. A . Cell név szerint (pl. "A1") vagy nullával alapuló sor/részeg index. putValue() hogy írjon primitív értékeket, és getValue() / getStringValue() olvasni. Vissza.
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()); // 1200Cella képlet beállítását
A formulák sorát egy cellához hozzárendelni a következőn keresztül: setFormula(). Aspose.Cells értékeli képleteket a munkafüzet mentése vagy a számítás kifejezetten indítása.
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)Munkafüzet mentése
Használat Workbook.save(fileName) a munkafüzet leírása. A kimeneti formátum: a fájl kiterjesztése alapján; .xlsx az Excel munkafüzetekre.
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");Erőforrások felszabadítása
Workbook készülék AutoCloseable.A felhasználó által használt eszközök és a felhasználók által használható eszközöket kell használni. A munkafüzet belső forrásai a használat után azonnal felszabadulnak.
import com.aspose.cells.foss.Workbook;
try (Workbook workbook = new Workbook("data/large.xlsx")) {
workbook.save("output/large_modified.xlsx");
}
// workbook.close() called automaticallyTippek és legjobb gyakorlatok
- Mindig használjon erőforrásokat (
try (Workbook wb = new Workbook(...))) a nagy fájlok, hogy elkerüljük a tárolót. - Prefer
cells.get(row, column)átcells.get(cellName)forró hurkokban; a egész számok túlterhelése elkerülheti a sejtnevek ismételt elemzését. - Call
workbook.getWorksheets().getCount()a listák index szerinti hozzáférése előtt, hogy elkerülje azIndexOutOfBoundsException. - A lapok nevét kifejezetten a következőkkel kell megadni:
setName()utánadd()így a lejjebb lévő kódok képesek Nézzétek meg a nevük szerint, ne törékeny index alapján. - A készítmény nyomtatása után nem szabad a képlet eredményeire támaszkodni.
setFormula(); előbb vagy utána menteni. Újra tölteni, ha számított értékeket kell ugyanabban a ülésen.
Általános kérdések
| Issue | Cause | Megjavítani. |
|---|---|---|
WorkbookLoadException a következő napon: new Workbook(fileName) | Nem megfelelő fájlút vagy zárt fájlok | Ellenőrizze, hogy a pályát megvan és olvasható; zárja be az adatot tartalmazó más alkalmazásokat. |
get(index) dobás IndexOutOfBoundsException | A folyadék indexje a továbbiakban: getCount() - 1 | Check sheets.getCount() a hozzáférés előtt; használata add() új lap létrehozása |
A képlet üres cellát ad vissza. getValue() | Nem memóriában automatikusan kiszámított képletek | A képlet eredményeinek eléréséhez mentse meg a munkafüzetet és töltsön újra. |
A kimeneti fájl korrupt, miután: save() | Helytelen fájlkiterjesztés | Biztosítsuk, hogy a fájlnév így végződik: .xlsx; formátum a kiterjesztésből következik. |
FAQ
Hogyan adhatok át nevet egy munkalapra?
Vissza a… Worksheet objektum index szerint a WorksheetCollection és hívja fel. setName(name) az új megjelenítési név:
workbook.getWorksheets().get(0).setName("Sales Data");Hogyan ellenőrizzem, hány lap van egy munkafüzetben?
Call getCount() a következők szerint: WorksheetCollection visszaadta: Workbook.getWorksheets() a munkalapok teljes számának elérése:
int count = workbook.getWorksheets().getCount();Hozhatok több lapot egy hívás alatt?
Hívj fel! worksheets.add(sheetName) A rendszer minden egyes lapra egyszer. Minden hívás a kód indexjét adja vissza. újratalált lap.
Hogyan ellenőrizzem a cellák értékének típusát?
Vissza a… Cell név és hívás szerint. getType(), ami a CellValueType enum érték:
Cell cell = cells.get("A1");
System.out.println(cell.getType()); // CellValueType enum valueAPI-referencia összefoglaló
| Rendszer / módszer | Description |
|---|---|
Workbook() | Egy üres munkafüzet létrehozása egy üreges lapkal |
Workbook(fileName) | A munkafüzet egy fájl útvonalából történő betöltése . |
Workbook(stream) | A munkafüzet betöltése egy InputStream |
Workbook(fileName, options) | A munkafüzet betöltése: LoadOptions |
Workbook.getWorksheets() | Visszaadja a WorksheetCollection |
Workbook.save(fileName) | Tárol egy fájlba (a kiterjesztésből levont formátum) |
Workbook.save(stream, format) | Takarít egy áramlásra, ami kifejezett. SaveFormat |
WorksheetCollection.get(index) | A kibocsátásiegység-kínálatok és a kibocsátási értékek közötti különbség |
WorksheetCollection.get(name) | A cím szerinti jelentési lapok |
WorksheetCollection.add(sheetName) | Egy névvel rendelkező lapot ad hozzá; az indexét adja vissza |
WorksheetCollection.getCount() | A munkafüzet lapjai száma |
WorksheetCollection.removeAt(sheetName) | A cím alapján törli a lapot. |
Worksheet.getCells() | Visszaadja a Cells gyűjtemény e lapra vonatkozóan. |
Worksheet.getName() / setName() | A lap címét adja vagy állítja be |
Cells.get(cellName) | A: a-t adja vissza. Cell név szerint (pl. “A1”) |
Cells.get(row, column) | A: a-t adja vissza. Cell a nullázású sor/részeg szerint |
Cell.putValue(value) | Érti a cellába egy értéket. |
Cell.getValue() | A cellában az értéket úgy olvashatja, hogy: Object |
Cell.getStringValue() | A cellában a következő értéket olvashatja: String |
Cell.setFormula(formula) | Egy képlet szalagot állít be (pl. “=SUM(A1:A2)”) |
LoadOptions | Munkafüzet betöltésének konfigurációja |
SaveFormat | A formátum állandóinak száma (a formatot a fájl kiterjesztésből következtetik, nem továbbítják az adatbázishoz) save()) |