Munkafüzet-dokumentumok szerkesztése

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


Míg az előző rész a munkafüzet-dokumentumok szerkezetét írta le, ez a rész a egyes cellák és cellatartományokhoz való egyszerű hozzáférést biztosító szolgáltatásokat írja le.

Cellatartományok

Az egyes cellaobjektumokon felül (com.sun.star.table.Cell szolgáltatás) az Apache OpenOffice cellatartományokat kezelő objektumokat is biztosít. Például a CellRange objektumok a munkafüzet-objektumok getCellRangeByName metódusával hozhatók létre:

Dim Doc As Object   
Dim Sheet As Object
Dim CellRange As Object
 
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("A1:C15")

A munkafüzet-dokumentum cellatartományát kettősponttal (:) lehet megadni. Például az A1:C15 hivatkozás az 1-15 oszlopok celláit jelöli az A, B és C oszlopban.

A cellatartomány egyes celláinak helye a getCellByPosition metódussal határozható meg, ahol a cellatartomány bal felső cellájának koordinátái (0, 0). A következő példa ezt a metódust használja a C3 cella objektumának létrehozásához.

Dim Doc As Object   
Dim Sheet As Object
Dim CellRange As Object
Dim Cell As Object
 
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("B2:D4")
Cell = CellRange.GetCellByPosition(1, 1)

Cellatartományok formázása

Ahogy az egyes cellák, úgy a cellatartományok is a com.sun.star.table.CellProperties szolgáltatással formázhatók. További információkért és példákért lásd: Munkafüzet-dokumentumok formázása.

Számolás cellatartományokkal

A computeFunction metódussal matematikai műveleteket végezhetünk a cellatartományokon. A computeFunction metódus egy állandót vár paraméterként, amely leírja a használni kívánt matematikai függvényt. A hozzátartozó állandók a com.sun.star.sheet.GeneralFunction enumerációban vannak definiálva. A következő értékek használhatók:

SUM
a numerikus értékek összege.
COUNT
az értékek száma (beleértve a nem numerikus értékeket is).
COUNTNUMS
a numerikus értékek száma.
AVERAGE
a numerikus értékek átlaga.
MAX
a legnagyobb numerikus érték.
MIN
a legkisebb numerikus érték.
PRODUCT
a numerikus értékek szorzata.
STDEV
szórás.
VAR
szórásnégyzet.
STDEVP
szórás a teljes populációra vetítve.
VARP
szórásnégyzet a teljes populációra vetítve.

A következő példa kiszámítja az átlagát az A1:C3 tartománynak, és megjeleníti az eredményt egy üzenetablakban:

Dim Doc As Object   
Dim Sheet As Object
Dim CellRange As Object
 
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("A1:C3")
 
MsgBox CellRange.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE)

Cellatartalmak törlése

A clearContents metódus leegyszerűsíti a cellatartalmak és cellatartományok törlését azzal, hogy egy adott típusú tartalmat töröl egy cellatartományból.

A következő példa eltávolítja az összes karakterláncot és közvetlen formázási információt a B2:C3 tartományból.

Dim Doc As Object   
Dim Sheet As Object
Dim CellRange As Object
Dim Flags As Long
 
Doc = ThisComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName("B2:C3")
 
Flags = com.sun.star.sheet.CellFlags.STRING + _
      com.sun.star.sheet.CellFlags.HARDATTR
 
CellRange.clearContents(Flags)

A clearContents metódusban megadott jelzők a com.sun.star.sheet.CellFlags állandólistából származnak. Ez a lista a következő elemeket biztosítja:

VALUE
numerikus érték, amely nem dátumként vagy időként van formázva.
DATETIME
numerikus érték, amely dátumként vagy időként van formázva.
STRING
karakterláncok.
ANNOTATION
cellákhoz csatolt megjegyzések.
FORMULA
képletek.
HARDATTR
cellák közvetlen formázása.
STYLES
közvetett formázás.
OBJECTS
cellákhoz csatolt rajzobjektumok.
EDITATTR
csak a cellák részeire vonatkozó karakterformázás.

Az állandókat össze is adhatjuk, hogy a clearContents metódussal különböző információkat töröljünk.

Cellatartalmak keresése és cseréje

A munkafüzet-dokumentumok – akárcsak a szöveges dokumentumok – keresési és cserefunkciót biztosítanak.

A munkafüzet-dokumentumokban a kereséshez és cseréhez használt leíróobjektum nem közvetlenül a dokumentumobjektumon keresztül van létrehozva, hanem a Sheets listán keresztül. A következő példa bemutatja a keresési és cserefolyamatot:

Dim Doc As Object   
Dim Sheet As Object
Dim ReplaceDescriptor As Object
Dim I As Integer
 
Doc = ThisComponent
Sheet = Doc.Sheets(0)
 
ReplaceDescriptor = Sheet.createReplaceDescriptor()
ReplaceDescriptor.SearchString = "kutya"
ReplaceDescriptor.ReplaceString = "macska"
For I = 0 to Doc.Sheets.Count - 1
   Sheet = Doc.Sheets(I)
   Sheet.ReplaceAll(ReplaceDescriptor)  
Next I

Ez a példa a dokumentum első oldalát használja a ReplaceDescriptor létrehozásához, és aztán ezt alkalmazza az összes oldalra egy ciklusban.


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools