Munkafüzet-dokumentumok szerkesztése
- A munkafüzetek felépítése
- Munkafüzet-dokumentumok szerkesztése
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). |