Seite 2 von 3

Re: xlsx zu cvs konvertieren?

Verfasst: 08.02.2022 20:01
von HeX0R
Hast Du mal ne Beispiel xlsx?

Ich hatte mir mal mit PB was gebastelt, mit dem ich xlsx Dateien "zu Fuß" lesen kann, weil ADO ein paar doofe Einschränkungen hatte.
Ist zwar sehr rudimentär, aber für ne übliche xlsx müsste das schon hinhauen.

Re: xlsx zu cvs konvertieren?

Verfasst: 08.02.2022 22:10
von mk-soft
Eine xlsx Datei ist eine ZIP Datei. Der Inhalt sind dann Ordner und XML Dateien.
Kannst ja mal Entpacken ...

Re: xlsx zu cvs konvertieren?

Verfasst: 08.02.2022 22:32
von HeX0R
Ja natürlich, davon rede ich ja.
Siehe hier: https://hex0rs.coderbu.de/cgi-bin/hv.cg ... 94&ia=1681

Re: xlsx zu cvs konvertieren?

Verfasst: 08.02.2022 22:47
von ccode_new
@HeX0R:

Da hast du ein tolles Tool verbrochen. 8)

Re: xlsx zu cvs konvertieren?

Verfasst: 09.02.2022 11:44
von Zerosurf
HeX0R hat geschrieben: 08.02.2022 22:32 Ja natürlich, davon rede ich ja.
Siehe hier: https://hex0rs.coderbu.de/cgi-bin/hv.cg ... 94&ia=1681
Das ist echt super! Vielen Dank!

Leider funktioniert es nur bei xlsx Datein und nicht bei xls Datein.

Re: xlsx zu cvs konvertieren?

Verfasst: 09.02.2022 13:47
von HeX0R
Ja klar, XLS Dateien haben ein ganz anderes Format.
Vielleicht solltest Du dann den Titel anpassen, weil Du ja doch eindeutig nach XLSX Dateien gefragt hattest.

Re: xlsx zu cvs konvertieren?

Verfasst: 10.02.2022 08:42
von Zerosurf
HeX0R hat geschrieben: 09.02.2022 13:47 Ja klar, XLS Dateien haben ein ganz anderes Format.
Vielleicht solltest Du dann den Titel anpassen, weil Du ja doch eindeutig nach XLSX Dateien gefragt hattest.
Oh entschuldige bitte - mein Fehler! Hab den Titel angepasst!

Re: xlsx bzw xls zu cvs konvertieren?

Verfasst: 12.02.2022 11:10
von ccode_new
Hallo,

also ich würde wegen der Einfachheit einfach ein Konsolenprogramm zur Umwandlung nutzen.

Hier mal das aktuell kompilierte Konsolenprogramm von "libxls-1.6.2".
(incl. PureBasic-Beispiel)

https://workupload.com/file/urx5ydEndEk

Re: xlsx zu cvs konvertieren?

Verfasst: 12.02.2022 12:54
von Zerosurf
Vielen Dank an HeXOR: https://hex0rs.coderbu.de/cgi-bin/hv.cg ... 94&ia=1681

Ich hab dank seiner Include (ExcelReader.pbi) folgendes zusammen gebastelt:

Code: Alles auswählen

XIncludeFile "ExcelReader.pbi"

Procedure main()
  Protected ExcelID, File$, count, i, j, SheetName.s, Line.s
  
  File$ = OpenFileRequester("Select Excel File", "", "Excel (*.xlsx;*.xlsm)|*.xlsx;*.xlsm|Alle Dateien (*.*)|*.*", 0)
  If File$ = ""
    ProcedureReturn
  EndIf
  
  ExcelID = EXCEL::Initialize(File$)
  
  If ExcelID = 0
    PrintN("Error: " + EXCEL::GetLastErrorText())
    ProcedureReturn 
  EndIf
  
  Count = EXCEL::CountSheets(ExcelID) - 1
  
  If OpenWindow(0, 0, 0, 270, 70, "Choose worksheet to convert:", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ComboBoxGadget(0, 10, 10, 250, 20)
    For i = 0 To Count
      AddGadgetItem(0, -1, EXCEL::GetSheetName(ExcelID, i))
    Next i
    SetGadgetState(0, 0)
    ButtonGadget(1, 115, 40, 40, 20, "OK")
    Repeat
      event = WaitWindowEvent()
      If Event = #PB_Event_Gadget
        If EventGadget() = 1 And EventType() = #PB_EventType_LeftClick
          j = GetGadgetState(0)
          SheetName = EXCEL::GetSheetName(ExcelID, j)
          Break
        EndIf
      EndIf
    Until event = #PB_Event_CloseWindow  
  EndIf
  
  If EXCEL::LoadSheetContent(ExcelID, SheetName) = 0
    MessageRequester("Error: ", EXCEL::GetLastErrorText())
  Else
    Count = EXCEL::CountContentLines(ExcelID, SheetName) - 1
    If CreateFile(0, SaveFileRequester("Save file to:", SheetName+".csv", "CSV (*.csv)|*.csv|All (*.*)|*.*", 0))
      For j = 0 To Count
        Line = EXCEL::GetContentLine(ExcelID, SheetName, j)
        Line = ReplaceString(Line, #ESC$, ",")
        WriteStringN(0, RTrim(Line, ","))
      Next j
      CloseFile(0)
      MessageRequester("Information: ","File saved!")
    Else
      MessageRequester("Error: ","Could NOT create file!")
    EndIf
  EndIf
  EXCEL::DeInitialize(ExcelID)
EndProcedure

main()
Habt ihr da Verbesserungsvorschläge?

Re: xlsx bzw xls zu cvs konvertieren?

Verfasst: 12.02.2022 21:37
von HeX0R
Sieht doch gut aus!