txt Datei aus ERP System automatisch in calc öffnen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

HerbG
Beiträge: 2
Registriert: Fr, 19.08.2005 11:16

txt Datei aus ERP System automatisch in calc öffnen

Beitrag von HerbG »

aus unserem erp system erhalte ich für Auswertungen txt Dateien, z.Z. wird Excel automatisch aufgerufen und die Datei angezeigt. Wenn ich als Office Paket OO angebe wird die Datei im writer geöffnet.
Das Speichern der Datei und manuelles öffnen in calc ist zu umständlich.
Gibt es eine Möglichkeit die ein Öffnen in calc erwingt ?
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey HerbG,
Gibt es eine Möglichkeit die ein Öffnen in calc erwingt ?
So brutal :wink: Also, direkt zwingen - nein. OOo öffent standardmäßig *.txt dateien in Writer und *.csv Dateien in Calc.
Die Lösung: Umbenennen in *.csv, das sollte genügen. Vielleicht kannst du dein ERP Programm davon überzeugen, die Datei gleich als *.csv Datei zu öffnen.
Letzte Lösung: ein Makro schreiben, das aber ist sicher aufwendiger.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Das Speichern der Datei und manuelles öffnen in calc ist zu umständlich.
Was heißt das denn? Die Datei ist garnicht gespeichert? Hat also auch keine Dateiendung?
Gibt es eine Möglichkeit die ein Öffnen in calc erwingt?
Nein, mit Bordmitteln nicht.

Falls das nun wirklich ein Textdokument mit der Endung txt wäre könnte man das folgende Makro global als Autostartmakro für das Ereignis "Dokument öffnen" einbinden:

Code: Alles auswählen

Sub TXT_ist_Tabelle()
DOK = ThisComponent
If DOK.supportsService("com.sun.star.text.TextDocument") then
	If LCase(Right(Dok.URL, 3)) = "txt" Then
		rueck = msgbox("Als Tabellendokument öffnen?",36,"")
		if rueck <> 6 Then Exit Sub
		Dim Dummy()
		dokument = StarDesktop.loadComponentFromURL	( "private:factory/scalc" , "_blank", 0, Dummy() )
		xxx = ConvertToURL(DOK.URL)
		DOK.Close(true)
		dim document   as object
		dim dispatcher as object
		dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
		dim args3(1) as new com.sun.star.beans.PropertyValue 
		args3(0).Name = "URL" 
		args3(0).Value = xxx
		args3(1).Name = "FilterName" 
		args3(1).Value = "Text - txt - csv (StarCalc)" 
		document   = ThisComponent.CurrentController.Frame
		dispatcher.executeDispatch(document, ".uno:Open", "", 0, args3()) 
	End If
End If	
End Sub
Das würde bei Bestätigung einer Nachfrage das Dokument neu als Tabellendokument laden. Nur wenn es schon zuviel Arbeit ist das Dokument in Calc zu öffnen sehe ich in dem Makro auch keinen Vorteil, denn die Nachfrage muß ja beantwortet werden. Ohne Nachfrage würde sonst jedes *.txt als Tabelle geöffnet.


Gruß
Stephan
HerbG
Beiträge: 2
Registriert: Fr, 19.08.2005 11:16

Beitrag von HerbG »

das Problem ist, ich kenne mich in der Makroprogrammierung nicht wirklich aus !
das Makro habe ich zwar reinkopiert und ich kann es auch manuell ausführen, allerdings funktioniert die Verknüpfung mit einem event zur automatischen Ausführung nicht (keine Ahnung was ich da falsch mache).
Ich habe mich da noch ein bisschen schlau gemacht und auch gesehen dass man Makro´s auch aus der Kommandozeile aufrufen kann, bin aber noch nicht schlau genug dass es funktioniert.
gibts dazu vielleicht etwas Basisliteratur in der das beschrieben steht, Applikationen gibts ja reichlich ?

noch folgende Info:
die .txt Dateinamen aus dem ERP System sind zufällig und liegen in einem tmp Verzeichnis.
Antworten