von Toxitom » Mo, 22.01.2007 16:38
Hey Thomas,
hmm, also das mit dem Inhalt einer Zelleist so eine Sache... Eine Zelle kann Texte, Zahlen oder Formeln enthalten - das sind schon mal drei verschiedene Inhalte. Auch ein Leerzeichen wäre ja ein Textinhalt - wenn gleich die Zelle leer erscheint.
Ist also nicht ganz so einfach. OOo bietet via API eine Möglichkeit, den Typ des Zellinhaltes zu prüfen:
oZelle.getType() -> liefert 0, wenn die Zell leer ist (wirklich leer!) und entsprechend andere Werte, wenn etwas drin steht. Du könntest deine Prüfung also sogar auf Inhaltstypen ausdehnen.
Nun zu deinem Punkt: Wahrscheinlich müsstest du eine Schleife über alle Zellen des Bereiches fahren und gegen den Typ 0 testen - gibt es keine mit dem Typ, sind alle Zellen gefüllt - ansosnten ist mindestens eine leer:
Code: Alles auswählen
oBereich = oSheet.getCellRangeByPosition(0, 0, 2,2) 'Zelle A1 bis C3
For i = 0 to 3
For j = 0 to 3
if oSheet.getCellByPosition(i, j).getType() = 0 then
oBereich.ClearContents(511)
exit For
end if
next
next
Klar, für die Zahlen kannst du natürlich auch Variable nehmen.
Und die 511 löscht dir wirklich alles - auch die Formate etc. Da musst du eben eventuell anpassen:-)
Viele Grüße
Thomas
Hey Thomas,
hmm, also das mit dem Inhalt einer Zelleist so eine Sache... Eine Zelle kann Texte, Zahlen oder Formeln enthalten - das sind schon mal drei verschiedene Inhalte. Auch ein Leerzeichen wäre ja ein Textinhalt - wenn gleich die Zelle leer erscheint.
Ist also nicht ganz so einfach. OOo bietet via API eine Möglichkeit, den Typ des Zellinhaltes zu prüfen:
oZelle.getType() -> liefert 0, wenn die Zell leer ist (wirklich leer!) und entsprechend andere Werte, wenn etwas drin steht. Du könntest deine Prüfung also sogar auf Inhaltstypen ausdehnen.
Nun zu deinem Punkt: Wahrscheinlich müsstest du eine Schleife über alle Zellen des Bereiches fahren und gegen den Typ 0 testen - gibt es keine mit dem Typ, sind alle Zellen gefüllt - ansosnten ist mindestens eine leer:
[code]oBereich = oSheet.getCellRangeByPosition(0, 0, 2,2) 'Zelle A1 bis C3
For i = 0 to 3
For j = 0 to 3
if oSheet.getCellByPosition(i, j).getType() = 0 then
oBereich.ClearContents(511)
exit For
end if
next
next
[/code]
Klar, für die Zahlen kannst du natürlich auch Variable nehmen.
Und die 511 löscht dir wirklich alles - auch die Formate etc. Da musst du eben eventuell anpassen:-)
Viele Grüße
Thomas