Számlalapkezeléssel való munka

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

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

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

Tippek é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) át cells.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 az IndexOutOfBoundsException.
  • A lapok nevét kifejezetten a következőkkel kell megadni: setName() után add() í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

IssueCauseMegjavítani.
WorkbookLoadException a következő napon: new Workbook(fileName)Nem megfelelő fájlút vagy zárt fájlokEllenőrizze, hogy a pályát megvan és olvasható; zárja be az adatot tartalmazó más alkalmazásokat.
get(index) dobás IndexOutOfBoundsExceptionA folyadék indexje a továbbiakban: getCount() - 1Check 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épletekA 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ésBiztosí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 value

API-referencia összefoglaló

Rendszer / módszerDescription
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)”)
LoadOptionsMunkafüzet betöltésének konfigurációja
SaveFormatA 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())

See Also

 Magyar