A munkafüzet-dokumentumok felépítése

From Apache OpenOffice Wiki
Jump to: navigation, search
Book.png

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.

Documentation note.png A VBA és az OpenOffice.org Basic eltérő neveket használ az egyes objektumok megnevezésére. Míg a dokumentumobjektum neve VBA-ban Workbook és az egyes lapjai a Worksheet objektumok, addig az OpenOffice.org Basicben SpreadsheetDocument objektumnak és Sheet objektumnak hívják ugyanazt.

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)
Documentation note.png A ThisComponent az utoljára aktív dokumentumot adja vissza.

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).
Personal tools