|
Annak ellenére, hogy az A1 cella a 100 értéket, az A2 cella az 1000 értéket tartalmazza, az A1+A2 képlet a 100 értéket adja vissza. Ez azért van, mert az A2 cella tartalma szövegként lett megadva.
Ha ellenőrizni akarjuk, hogy egy cella számot vagy szöveget tartalmaz-e, használjuk a Type tulajdonságot:
Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
Cell.Value = 1000
Select Case Cell.Type
Case com.sun.star.table.CellContentType.EMPTY
MsgBox "Tartalom: üres"
Case com.sun.star.table.CellContentType.VALUE
MsgBox "Tartalom: érték"
Case com.sun.star.table.CellContentType.TEXT
MsgBox "Tartalom: szöveg"
Case com.sun.star.table.CellContentType.FORMULA
MsgBox "Tartalom: képlet"
End Select
|
A Cell.Type tulajdonság visszaadja a com.sun.star.table.CellContentType enumeráció értékét, amely azonosítja a cella típusát. A következő értékek használhatók:
EMPTY - nincs érték.
VALUE - szám.
TEXT - karakterláncok.
FORMULA - képlet.
Cellák beszúrása, törlése, másolása és áthelyezése
A cellatartalom közvetlen módosítása mellett a StarOffice Calc biztosít egy felületet, amellyel beszúrhatunk, törölhetünk, másolhatunk vagy összevonhatunk cellákat. A (com.sun.star.sheet.XRangeMovement) felület a munkafüzet-objektumon keresztül érhető el, és négy metódust biztosít a cellatartalom módosításához.
Az insertCell metódussal cellák szúrhatók be a munkalapba.
Dim Doc As Object
Dim Sheet As Object
Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
CellRangeAddress.Sheet = 0
CellRangeAddress.StartColumn = 1
CellRangeAddress.StartRow = 1
CellRangeAddress.EndColumn = 2
CellRangeAddress.EndRow = 2
Sheet.insertCells(CellRangeAddress, com.sun.star.sheet.CellInsertMode.DOWN)
|
Ebben a példában a program beszúr egy két oszlop és két sor méretű cellatartományt az első munkalap (száma 0) második oszlopába és sorába (mindkettő száma 1). Az adott tartományban található értékek a tartomány alá kerülnek.
A com.sun.star.table.CellRangeAddress struktúrával definiálható a beszúrni kívánt cellatartomány. Ebben a struktúrában a következő értékek találhatók:
Sheet (rövid egész) - a munkalap száma (a számozás 0-val kezdődik).
StartColumn (hosszú egész) - a cellatartomány első oszlopa (a számozás 0-val kezdődik).
StartRow (hosszú egész) - a cellatartomány első sora (a számozás 0-val kezdődik).
EndColumn (hosszú egész) - a cellatartomány utolsó oszlopa (a számozás 0-val kezdődik).
EndRow (hosszú egész) - a cellatartomány utolsó sora (a számozás 0-val kezdődik).
A kitöltött CellRangeAddress struktúrát át kell adni az insertCells metódusnak. Az insertCells második paramétere tartalmaz egy értéket a com.sun.star.sheet.CellInsertMode enumerációból, és meghatározza mit kell tenni a beszúrási pozícióban lévő értékekkel. A CellInsertMode enumeráció a következő értékeket használja:
NONE - az aktuális értékek a helyükön maradnak.
DOWN - a beszúrási pozícióban és azalatt lévő értékek lefelé mozognak.
RIGHT - a beszúrási pozícióban és attól jobbra lévő értékek jobbra mozognak.
ROWS - a beszúrási pozíció utáni sorok lefelé mozognak.
COLUMNS - a beszúrási pozíció utáni oszlopok jobbra mozognak.
|