A munkafüzet-dokumentumok felépítése
A munkafüzet dokumentumobjektuma a com.sun.star.sheet.SpreadsheetDocument szolgáltatáson alapul. A dokumentumok mindegyike több munkafüzetet is tartalmazhat. Ebben az útmutatóban a táblázat alapú dokumentum vagy munkafüzet-dokumentum a teljes dokumentum, míg a munkalap egy lapja (táblázata) a dokumentumnak.
Munkafüzetek
A munkafüzet-dokumentum egyes munkalapjait a Sheets listával érhetjük el.
Az alábbi példa bemutatja, hogyan érhető el egy munkalap a száma vagy neve alapján.
1. példa: hozzáférés szám alapján (a számozás 0-nál kezdődik)
Dim Doc As Object
Dim Sheet As Object
Doc = ThisComponent
Sheet = Doc.Sheets(0)
2. példa: hozzáférés név alapján
Dim Doc As Object
Dim Sheet As Object
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
Az első példában a munkalapot a száma alapján éri el a program (a számozás 0-nál kezdődik). A második példában pedig a neve alapján, a getByName metódus használatával.
A getByName metódus által visszaadott Sheet objektum a com.sun.star.sheet.Spreadsheet szolgáltatást támogatja. A tartalom szerkesztéséhez használt számos felületen kívül ez a szolgáltatás a következő tulajdonságokat biztosítja:
- IsVisible (logikai érték)
- a munkafüzet látható.
- PageStyle (karakterlánc)
- a munkafüzet oldalsablonjának neve.
Munkalapok létrehozása, törlése és átnevezése
A munkafüzet-objektum Sheets listája szintén használható az egyes munkalapok létrehozásához, törléséhez és átnevezéséhez. A következő példa a hasByName metódussal ellenőrzi, hogy létezik-e egy SajátMunkalap nevű munkalap. Ha létezik, a metódus létrehozza a megfelelő objektumhivatkozást a getByName metódus használatával, és menti a hivatkozást a Sheet nevű változóba. Ha az adott munkalap nem létezik, a createInstance metódus létrehozza azt, és az insertByName beszúrja a munkafüzet-objektumba.
Dim Doc As Object
Dim Sheet As Object
Doc = ThisComponent
Sheet = Doc.Sheets(0)
If Doc.Sheets.hasByName("SajátMunkalap") Then
Sheet = Doc.Sheets.getByName("SajátMunkalap")
Else
Sheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
Doc.Sheets.insertByName("SajátMunkalap", Sheet)
End If
A getByName és az insertByName metódust a com.sun.star.container.XnameContainer felület tartalmazza. Ezek leírását A StarOffice API bemutatása fejezetben találjuk.
Content on this page is licensed under the Public Documentation License (PDL). |