Öffnen einer CSV-Datei

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Öffnen einer CSV-Datei

von Karolus » So, 03.12.2006 12:55

Hallo

Den ASCII- Code eines Zeichens kannst du in Calc herausfinden über :
=CODE(";") ergibt --> 59

Code: Alles auswählen

sub Open1CSVFile (sUrl As String) As Object
' Opens CSV-file
' sUrl MUST be in Url-format (for example: "file:///c:/ddd.sxc")
'	( --> use / not \ )
sUrl = "file:///ffff/dddd/aaaaa/cccc.csv"  'linux Pfad Notierung
	Dim fileProperties(1) As New com.sun.star.beans.PropertyValue

	fileProperties(0).Name = "FilterName"
	fileProperties(0).Value = "scalc: Text - txt - csv (StarCalc)"
	fileProperties(1).Name = "FilterFlags"
	fileProperties(1).Value = "59/9,34,0,1,1/1/1/1/1/1/1/1"
                           '59/9 --> columns are devided by ";" and tab
                           '59 -> Semikolon ist  Spaltentrenner
                           '34   --> text delimiter --> double qoutes (")
                           ' IBMPC_850 --> charset (is a constant with the value 4)
                           '			   0 is system charset	
	Open1CSVFile = StarDesktop.loadComponentFromURL(sUrl,"_blank", 0,fileProperties())
End sub
Gruß Karo

von bronstein » So, 03.12.2006 10:44

Hat sich erledigt, habe was gefunden:

Code: Alles auswählen

Dim oDocument as Object
  FName="c:\Kundennummer"
  fnURL=ConvertToURL(FName+".txt")

  'Datei öffnen mit dem Trennzeichen ;
  oDocument = StarDesktop.LoadComponentFromURL( fnURL, "_blank", 0, _
  Array(MakePropertyValue( "FilterName", "Text - txt - csv (StarCalc)" ), _
  MakePropertyValue( "FilterOptions", "9/MRG,34,0,1,1/1/1/1/1/1/1/1" )
 											 											 
  document   = ThisComponent.CurrentController.Frame
  dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

von bronstein » So, 03.12.2006 09:30

Habe eine txt-Datei, deren Datensätze durch Semikolon getrennt sind. Wie muss ich jetzt den Filter anpassen, damit das funktioniert. Habe versucht den Link von hoefri55 zu verstehen. Leider sind meine Englischkentniss wirklich schlecht.

von Sir_Duke » Di, 28.11.2006 19:20

Ok hab nun mal den orginal Code verwendet bis auf die Zeile "Save document"

Leider bekomme ich auch hier eine Fehlermeldung und zwar an folgender Stelle:

"
oDocument = StarDesktop.LoadComponentFromURL( fnURL, "_blank", 0, _
"

Meldung:

BASIC-Laufzeitfehler
Es ist eine EXecption aufgetrent
Type: com.sun.star.lang.IllegalArgumentExceptio
Massage: URL seems to be an unsupportet one.

Ich hab aber keinen blassen schimmer was der von mir will und wie ich es beheben kann.

von Stephan » Fr, 24.11.2006 17:43

Naja logisch. Hier steckt der Fehler:

Code: Alles auswählen

MakePropertyValue( "FilterOptions", "32/MRG,34,0,1,7/2/8/2/9/2/10/2" )


damit wird eine Funktion "MakePropertyValue" aufgerufen die nirgenswo aufgeschrieben ist. Im anderen Code weiter oben ist die dabei und wenn Du sie mit in den Code übernimmst wird dieser auch laufen.


Gruß
Stephan

von Sir_Duke » Fr, 24.11.2006 17:14

Habe mir folgendes kopiert und ausprobiert

Sub ImportData
Dim oDocument as Object
FName="c:\temp\1"
fnURL=ConvertToURL(FName+".csv")

'Create new document and import data
oDocument = StarDesktop.LoadComponentFromURL( fnURL, "_blank", 0, _
Array(MakePropertyValue( "FilterName", "Text - txt - csv (StarCalc)" ), _
MakePropertyValue( "FilterOptions", "32/MRG,34,0,1,7/2/8/2/9/2/10/2" )

End sub
Hallo

wollte mit folgendem Teil aus deinem Code eine CSV Datei öffnen.

Leider bringt er mir dabei folgende Fehlermeldung:

"""

Basic Laufzeitfehler.
Sub- oder Funktionsprozedur nicht definiert

"""

Mfg

Erwin

von hoefri55 » Mo, 24.07.2006 10:54

Hallo Klaus,

ich danke für den Tipp. Es hat prima geklappt.
Nur der Link für die Import-Optionen ist nicht richtig angegeben (natürlich nicht dein Fehler). Richtig muß er lauten:

http://api.openoffice.org/docs/Develope ... heet.xhtml

(Hier angegeben, falls jemand nachsehen möchte)


Gruß, Friedhelm

von kannenklaus » Do, 20.07.2006 14:11

hallo friedhelm,

im englischpsrachigen forum habe ich folg. funktionierenden code gefunden:

du musst die variable FNAme ohne dateiendung anpassen.

s.a.
http://www.oooforum.org/forum/viewtopic ... t=open+csv

Code: Alles auswählen

Sub ImportData 
Dim oDocument as Object
 FName="c:\temp\1" 
 fnURL=ConvertToURL(FName+".csv") 

'Create new document and import data 
 oDocument = StarDesktop.LoadComponentFromURL( fnURL, "_blank", 0, _
 Array(MakePropertyValue( "FilterName", "Text - txt - csv (StarCalc)" ), _
       MakePropertyValue( "FilterOptions", "32/MRG,34,0,1,7/2/8/2/9/2/10/2" )

'Description of filter options can be found at 
'http://api.openoffice.org/docs/DevelopersGuide/Spreadsheet/Spreadsheet.htm 
    
'Save document 
 oDocument.storeAsURL( ConvertToURL( Fname+".ods" ), Array() ) 
End Sub 

'property function 
Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue 
   oPropertyValue = createUnoStruct( "com.sun.star.beans.PropertyValue" ) 
   If Not IsMissing( cName ) Then 
      oPropertyValue.Name = cName 
   EndIf 
   If Not IsMissing( uValue ) Then 
      oPropertyValue.Value = uValue 
   EndIf 
   MakePropertyValue() = oPropertyValue 
End Function
grüße

klaus

Öffnen einer CSV-Datei

von hoefri55 » Do, 20.07.2006 13:27

Hallo,

ich habe versucht, mit dem folgenden Code eine CSV-Datei zu öffnen. Klappt aber nicht.
Weiß jemand warum und wie es besser geht?

Sub DateiOeffnen

url=converttourl("C:\test.csv")
dim myFileProp as Object
oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, myFileProp() )

end sub

Ich freue mich auf eine Lösung!!

Gruß, Friedhelm

Nach oben