Speichern unter...

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

Moderator: Moderatoren

fiz
**
Beiträge: 44
Registriert: Di, 16.01.2007 12:54
Wohnort: Hannover

Speichern unter...

Beitrag von fiz »

Hallo,

Da ich im calc-Segment des Forums auf die folgende Frage keine befriedigende Antwort erhalten habe, versuche ich es noch einmal hier. Ich hoffe ich werde deshalb nicht zu sehr ausgebuht.

ich habe eine calc-Formularvorlage (ots) die nach dem Ausfüllen unter jeweils einem neuen Namen als ods-Dokument abgespeichert werden soll.
Der Name wird in der Zelle S1 des Formulars aus verschiedenen Zellen des Formulars heraus als String generiert.

Ich suche nun nach einem Makro, das die Datei an einem bestimmten Ort (Pfad) unter dem Namen aus S1 speichert und außerdem das Formular ausdruckt.
Meine (aufgezeichnete) Lösung dazu ist sehr umfangreich und kompliziert und dauert richtig lang und außerdem ist sie immer noch halb manuell.

Wer kann mir helfen?


Gruß,
fiz
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Speichern unter...

Beitrag von komma4 »

Das Makro wirst Du Dir selbst schreiben müssen - Du findest hier verschiedene Lösungsansätze für Deine Frage, die schon mehrfach gestellt wurde.

Suchbegriffe sind: getCellRangeByName() und storeToURL()


Viel Erfolg. Bei konkreten Fragen meldest Du Dich wieder?!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Speichern unter...

Beitrag von Karolus »

Hallo
Im OOo.wiki findet sich folgendes:
http://www.ooowiki.de/FeldinhaltAlsDateiname

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
fiz
**
Beiträge: 44
Registriert: Di, 16.01.2007 12:54
Wohnort: Hannover

Re: Speichern unter...

Beitrag von fiz »

Danke euch beiden
fiz
**
Beiträge: 44
Registriert: Di, 16.01.2007 12:54
Wohnort: Hannover

Re: Speichern unter...

Beitrag von fiz »

Hallo karolus,

habe deinen Vorschlag nach bestem WIssen und Gewissen angepasst. Sieht nun so aus:

Code: Alles auswählen

sub SelektionEnde

  oDoc=thisComponent
  Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
  Cell = Sheet.getCellByPosition(18, 0)  '[Zelle A1]
  Filename = Cell.String

  Path = "file:////P:/Selektion/Zeitschriften/" '[Pfad anpassen bei Windows]
  dim args1(0) as new com.sun.star.beans.PropertyValue
  args1(0).Name = "FilterName"
  args1(0).Value = "StarOffice XML (Calc)"
  oDoc.storeasurl(Path &  Filename & "ods" ,args1())


end sub
Leider kriege ich bei Ausführung einen Laufzeitfehler. Woran könnte das liegen?

Gruß,
fiz
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Speichern unter...

Beitrag von hol.sten »

fiz hat geschrieben:

Code: Alles auswählen

...
  Path = "file:////P:/Selektion/Zeitschriften/" '[Pfad anpassen bei Windows]
...
Leider kriege ich bei Ausführung einen Laufzeitfehler. Woran könnte das liegen?
Dein Path enthält zu viele "Slasches" nach "file:". Drei müssen es sein, vier sind es aber. Es müsste also so heißen:

Code: Alles auswählen

...
  Path = "file:///P:/Selektion/Zeitschriften/" '[Pfad anpassen bei Windows]
...
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Speichern unter...

Beitrag von hol.sten »

Zwei Anmerkungen habe ich dann noch zu deinem Basic-Code:
fiz hat geschrieben:

Code: Alles auswählen

...
  Cell = Sheet.getCellByPosition(18, 0)  '[Zelle A1]
...
Dies ist nicht die Zelle A1, sondern die Zelle S1, während "Sheet.getCellByPosition(0,18)" die Zelle A19 wäre.
fiz hat geschrieben:

Code: Alles auswählen

...
  args1(0).Value = "StarOffice XML (Calc)"
  oDoc.storeasurl(Path &  Filename & "ods" ,args1())
...
Der Filtername "StarOffice XML (Calc)" gehört zu einem "OpenOffice.org 1.0 Spreadsheet", also .sxc. Für ein .ods wäre der Filtername "calc8" angebrachter. Hier findest du die vollständige Liste der Filternamen: http://wiki.services.openoffice.org/wik ... etDocument
fiz
**
Beiträge: 44
Registriert: Di, 16.01.2007 12:54
Wohnort: Hannover

Re: Speichern unter...

Beitrag von fiz »

Danke Euch beiden,

Wie im ersten Poste geschrieben, möchte ich tatsächlich die Zelle S1 auslesen. Habe nur den Kommentar aus Karolus' Code nicht angepasst.
Der Hinweis auf die Anzahl der Slashes und den Filter war auf jeden Fall gut.
Jetzt läufts!

Gruß,
fiz
Antworten