Excel to CSV Konvertieren

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Excel to CSV Konvertieren

Beitrag von X360 Andy »

Hallo,

ich habe bisher zum Konvertieren von *XLS *XLSX *XLSM Datein immer die Commando Line Anwendung von softinterface benützt.
http://www.softinterface.com/Convert-XL ... mmand_Line

Diese kann man wunderbar in Programme wo XLS Datein bearbeitet werden sollen ( ohne COMATE ) einbauen.

Aus irgendwechen Gründen funktioniert das ganze aber nicht unter Windows Server 2003, kann jemand einen Fehler erkennen ?
Das Programm selber ( der Konverter von softinterface ) sollte wohl unter Windows Server 2003 funktionieren ( hab ich nicht getestet )

Kann jemand einen Fehler erkennen ?

Oder kennt jemand eine andere Möglichkeit Excel ( hauptsächlich xls ) nach csv zu konvestieren , dabei darf auch comate etc. benutzt werden.

Hier der Download Link ( inkl. Commando Line und Source )
http://ultrashare.de/f/2029/converter.zip.html

Hier mein Code

Code: Alles auswählen

EnableExplicit
Enumeration
  #Window_0
EndEnumeration

Enumeration
  #String_0
  #String_1
  #Button_0
  #Button_1
  #Text_0
  #Text_1
  #Button_2
EndEnumeration

Global SelfPath$ = GetPathPart(ProgramFilename())
Global method$, sdk$ = "lib\ConvertXLS.exe"
Define p1$, p2$
Define event, exit

Procedure ConvertExcelToCSV(p1$, p2$)
  Select GetExtensionPart(p1$)
    Case "xls"
      method$ = "/F-4143"
    Case "xlsx"
      method$ = "/F51"
    Case "xlsm"
      method$ = "/F52"
    Default
      MessageRequester("Fehler", "Ein ungültiger Datei Typ wurde ausgewählt!" + Chr(10) + "Nur *XLS,*XLSX* und *XLSM Datein sind erlaubt")
      ProcedureReturn 0
  EndSelect
  RunProgram(sdk$, "/S" + Chr(34) + p1$ + Chr(34) + " " + method$ + " /N" + Chr(34) + "^^59" + Chr(34) + "  /T" + Chr(34) + p2$ + Chr(34) + " /C6 /M2", SelfPath$)
EndProcedure

Procedure.s CheckExtensionFromFile(FileName$, Extension$)
  Define Filename$, Extension$
  If Not StringField(Filename$, CountString(Filename$, ".") + 1, ".") = Extension$
    Filename$ + "." + Extension$
  EndIf
  ProcedureReturn FileName$
EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 388, 202, 482, 147, "XLS -> CSV Converter ", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar)
    
    StringGadget(#String_0, 10, 30, 410, 20, SelfPath$)
    StringGadget(#String_1, 10, 80, 410, 20, SelfPath$ + "new.csv")
    ButtonGadget(#Button_0, 440, 30, 30, 20, "...")
    ButtonGadget(#Button_1, 440, 80, 30, 20, "...")
    TextGadget(#Text_0, 10, 60, 80, 20, "Ausgabe:")
    TextGadget(#Text_1, 10, 10, 100, 20, "Eingabe:")
    ButtonGadget(#Button_2, 10, 110, 110, 20, "Konvertieren")
    
  EndIf
EndProcedure



Open_Window_0()

Repeat
  event = WaitWindowEvent(50)
  
  Select event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Button_0
          SetGadgetText(#String_0, OpenFileRequester("Bitte Datei zum Laden auswählen", GetPathPart(ProgramFilename()), "Excel Datein|*.xls;*.xlsx;*xlsm", 1))
        Case #Button_1
          SetGadgetText(#String_1, SaveFileRequester("Bitte Ort zum speichern auswählen", GetPathPart(ProgramFilename()), "Excel Datein|*.xls;*.xlsx;*xlsm", 1))
        Case #Button_2
          p1$ = GetGadgetText(#String_0)
          p2$ = CheckExtensionFromFile(GetGadgetText(#String_1),"csv")
          ConvertExcelToCSV(p1$, p2$)
      EndSelect
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          exit = 1
      EndSelect
      
  EndSelect
  
Until exit = 1
Gruß Andreas