Calc per Script auslesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Calc per Script auslesen

Beitrag von F3K Total »

Hi,
das hängt von Inhalt, den du einlesen möchtest, ab.
Zum Beispiel ist es ein Unterschied, ob du die Formel, die in einer Zelle steht, oder das Rechenergebnis dieser Formel haben möchtest.
Es können Texte oder Zahlen in einer Zelle stehen.
Du müsstest schon genauer beschreiben, was du überhaupt mit den eingelesenen Daten anstellen möchtest.
Gruß R
PS: Die Frage gehört eigentlich ins Unterforum OOo Basic und Java
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Calc per Script auslesen

Beitrag von F3K Total »

Also, die Infos sind immer noch dünn, was du mit den Texten anstellen willst, fehlt.
Du bekommst zum Beispiel mit

Code: Alles auswählen

Sub get_text_array
   osheet = thiscomponent.sheets.getbyname("Tabelle1")
   ocursor = osheet.createcursor
   ocursor.gotoendofusedarea(false)
   aRangeaddress = ocursor.rangeaddress
   oRange = osheet.getcellrangebyposition(0,0,aRangeaddress.endcolumn,aRangeaddress.endrow)
   adataarray = oRange.dataArray
   for i = 0 to ubound(adataarray)
       arow  = adataarray(i)
       for k = 0 to ubound(adataarray(0))
         stext = arow(k)
         msgbox stext
       next k
   next i
End Sub
alle Texte im benutzten Zellbereich nacheinander zeilenweise angezeigt.

Code: Alles auswählen

adataarray
ist dabei dein Textarray

Code: Alles auswählen

arow = adataarray(0)
ist die erste Zeile

Code: Alles auswählen

arow(0) 
ist der erste Wert dieser Zeile, also der Wert in Spalte A

Code: Alles auswählen

arow(1) 
ist der zweite Wert dieser Zeile, also der Wert in Spalte B
HTH R
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Calc per Script auslesen

Beitrag von F3K Total »

Code: Alles auswählen

       for i = 0 to ubound(adataarray)
           arow  = adataarray(i)
          if Instr(1,arow(0),"#") > 0 then
             goto 100
          end if

          for x = 0 to ubound(adataarray(0))
             stext = arow(x)
             arow(x) = Trim(stext)
          next x
       100:
       next i
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Calc per Script auslesen

Beitrag von clag »

Hallo Piet,
piet hat geschrieben:Wie kann ich so etwas anstellen ??
z.B. so

Code: Alles auswählen

while len(myText)<80
myText = myText & " "
wend
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Calc per Script auslesen

Beitrag von Karolus »

Hallo

Code: Alles auswählen

mytext & space(80-len(mytext)
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: Calc per Script auslesen

Beitrag von TrueColor »

Karolus hat geschrieben:

Code: Alles auswählen

mytext & space(80-len(mytext)
Oh, das ist interessant... dürfte sicher etwas performanter sein als die Schleife von Clag. Geht das auch mit irgendwelchen Füllzeichen genauso elegant?

Grüße
TrueColor
System:
LibO 6 + LibO 7
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Calc per Script auslesen

Beitrag von Karolus »

Hallo

Suche in der Hilfe unter Laufzeitfunktionen→→Zeichenfolgen→→Inhalte vervielfachen

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: Calc per Script auslesen

Beitrag von TrueColor »

Code: Alles auswählen

MsgBox(mytext & string(80-len(mytext),"=")) 
Ah, also genau so einfach.
Danke, Karolus
System:
LibO 6 + LibO 7
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Calc per Script auslesen

Beitrag von F3K Total »

Hi,
ersetzte

Code: Alles auswählen

osheet = thiscomponent.sheets.getbyname("Tabelle1")
durch

Code: Alles auswählen

osheet = thiscomponent.CurrentController.ActiveSheet
Gruß R
Antworten