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
Re: xlsx zu cvs konvertieren?
Verfasst: 08.02.2022 22:47
von ccode_new
@HeX0R:
Da hast du ein tolles Tool verbrochen.

Re: xlsx zu cvs konvertieren?
Verfasst: 09.02.2022 11:44
von Zerosurf
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!