Hallo zusammen,
kann mir jemand einen einfachen Code geben in dem die Grundfunktion zum Zugriff auf eine Excel Datei nachvollzogen werden kann?
Ich habe zwar verstanden dass es über ODBC möglich ist, finde dazu jedoch nichts in der Hilfe.
Klaus
Zugriff auf eine Excel Tabelle
Das würde auch den Rahmen der Hilfe sprengen.
Aber hier findest Du funktionierenden Code: http://www.purebasic.fr/german/viewtopic.php?t=12612
Gruß, Little John
Aber hier findest Du funktionierenden Code: http://www.purebasic.fr/german/viewtopic.php?t=12612
Gruß, Little John
danke für den Link. Auf den Code bin ich auch schon gestoßen.
Allerdings ist der für den Anfang doch sehr komplex.
Gibt es nicht etwas einfaches in dem einfach nach der Art:
Pfad c:\temp\exceltest.xls, Tabelle1 und Überschriften Spalte 1, Spalte2 Spalte3 sind bekannt:
1. Exceldatei öffnen/zugreifen
2. Tabelleninhalt anzeigen
Kann man das nicht irgentwo nachlesen? Im Hanbuch steht nichts drin..
Allerdings ist der für den Anfang doch sehr komplex.
Gibt es nicht etwas einfaches in dem einfach nach der Art:
Pfad c:\temp\exceltest.xls, Tabelle1 und Überschriften Spalte 1, Spalte2 Spalte3 sind bekannt:
1. Exceldatei öffnen/zugreifen
2. Tabelleninhalt anzeigen
Kann man das nicht irgentwo nachlesen? Im Hanbuch steht nichts drin..
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Excel benutzt eben ein komplexes Format.
> Im Hanbuch steht nichts drin..
Natürlich nicht.
PB ist nicht dafür erschaffen worden, um auf Microsoft-Dokumente zuzugreifen,
sondern um alles Mögliche zu programmieren.
Wenn dir der Zugriff auf Excel-Dateien noch zu kompliziert ist,
dann musst du dir für den Anfang was Einfacheres suchen.
> Im Hanbuch steht nichts drin..
Natürlich nicht.
PB ist nicht dafür erschaffen worden, um auf Microsoft-Dokumente zuzugreifen,
sondern um alles Mögliche zu programmieren.
Wenn dir der Zugriff auf Excel-Dateien noch zu kompliziert ist,
dann musst du dir für den Anfang was Einfacheres suchen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
o.k. das befürchte ich auch.
Ich habe mich zwischenzeitlich an textdateien rangemacht. Das funzt ganz gut.
Aber ich denke trotzdem dass es vielen helfen würde wenn man mal eine einfache Beschreibung für ODBC hätte.
Im Code von mpc ist ja eigentlich alles drin was man brauch.
Leider bin ich noch nicht in der Lage das wesentliche heraus zu filtern.
Vielleicht gelingt es noch jemanden
Ich habe mich zwischenzeitlich an textdateien rangemacht. Das funzt ganz gut.
Aber ich denke trotzdem dass es vielen helfen würde wenn man mal eine einfache Beschreibung für ODBC hätte.
Im Code von mpc ist ja eigentlich alles drin was man brauch.
Leider bin ich noch nicht in der Lage das wesentliche heraus zu filtern.
Vielleicht gelingt es noch jemanden

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Vielleicht ist dies hier einfacher:
http://www.purebasic.fr/german/viewtopi ... 777#158777
Den Disphelper gibts hier: http://www.realsource.de/downloads/doc_ ... elper.html
http://www.purebasic.fr/german/viewtopi ... 777#158777
Den Disphelper gibts hier: http://www.realsource.de/downloads/doc_ ... elper.html
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Per ODBC möglich.
DSN erstellen (ODBCAD32.EXE) und dann mit SQL bearbeiten.
Es gibt noch die ExDatabase unter PBOSL http://pbosl.purearea.net/ die dir die DSN automatisch erstellt.
Ein Beispiel für ODBC mit Excel fehlt noch. Werde ich noch basteln.
FF
P.S. Beispiel für Excel
DSN erstellen (ODBCAD32.EXE) und dann mit SQL bearbeiten.
Es gibt noch die ExDatabase unter PBOSL http://pbosl.purearea.net/ die dir die DSN automatisch erstellt.
Ein Beispiel für ODBC mit Excel fehlt noch. Werde ich noch basteln.
FF

P.S. Beispiel für Excel
Code: Alles auswählen
EnableExplicit
UseODBCDatabase()
;InitDatabase()
Define.s dbName = GetCurrentDirectory() + "Adressen.xls" ; könnt Ihr anpassen
Define.s DSN
Define.s SQL
Define.l db = 0
Define.l result
dsn = AddDSN(dbName) ; DSN hinzufügen
Debug "DSM=" + dsn
; Datenbank verbinden
If OpenDatabase(db, DSN, "", "") = 0
End
EndIf
If IsDatabase(db)
; SQL Befehl zum Auslesen von Daten der Tabelle
SQL = "Select * from [Adressen$] order by nachname asc;"
If DatabaseQuery(db, SQL) ; SQL Befehl ausführen
Debug "Daten in Tabelle 'Adressen'" : Debug ""
While NextDatabaseRow(db) ; gelesene Daten aus der Datenbank durchlaufen
Debug Str(GetDatabaseLong(db, 0)) + ": " + GetDatabaseString(db, 1) + " " + GetDatabaseString(db, 2) ; gelesene Daten aus der Datenbank ausgeben
Wend
EndIf
CloseDatabase(db)
EndIf
; Tabellen lesen
If ExamineTables(dsn)
Debug "Tabellen in Database:"
Debug ""
While NextTable()
Debug GetTableName() + " <-- " + GetTableType()
Wend
Debug "" : Debug ""
EndIf
result = RemoveDSN(dbName); DSN wieder entfernen
If Result = 0
MessageRequester("SQLError", GetSQLInstallerError())
EndIf
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
@Klausi:
Ich habe Dir mal was zusammengebastelt, von dem ich denke, dass es
einfach genug ist. Der Zugriff auf die Excel-Datei erfolgt in einer DLL, die
Du von Deinem PB-Code nur aufrufen musst. Der Rest ist Standard-
PB-Werks.
Download Komplettpaket: Hier (ca. 20 KB)
Beispielaufruf:
Falls Du noch Fragen hast: Immer her damit!
Grüße ... Kiffi
Ich habe Dir mal was zusammengebastelt, von dem ich denke, dass es
einfach genug ist. Der Zugriff auf die Excel-Datei erfolgt in einer DLL, die
Du von Deinem PB-Code nur aufrufen musst. Der Rest ist Standard-
PB-Werks.
Download Komplettpaket: Hier (ca. 20 KB)
Beispielaufruf:
Code: Alles auswählen
; ExcelHelper-Test
EnableExplicit
Define.s Excelfile, Tablenames, Query, Tablecontent
Define.l ExcelHelper, GetTableNames, GetTableContent
Define.l FieldCounter, LineCounter
; Pfad und Name der Exceldatei -- Bitte anpassen
Excelfile = "D:\Eigene Dateien\Eigene Projekte\PureBasic\ExcelHelper\Mappe1.xls"
; Pfad und Name der ExcelHelper.dll -- Bitte anpassen
ExcelHelper = OpenLibrary(#PB_Any, "ExcelHelper.dll")
If ExcelHelper
; Tabellennamen der entsprechenden Excel-Datei ermitteln
GetTableNames = GetFunction(ExcelHelper, "GetTableNames")
If GetTableNames
Tablenames = PeekS(CallFunctionFast(GetTableNames, @Excelfile))
If Tablenames
MessageRequester("Verfügbare Tabellen:", Tablenames)
EndIf
EndIf
; Inhalt einer bestimmten Tabelle ermitteln
GetTableContent = GetFunction(ExcelHelper, "GetTableContent")
If GetTableContent
Query = "Select * From [Tabelle1$]" ; Tabellennamen anpassen!
Tablecontent = PeekS(CallFunctionFast(GetTableContent, @Excelfile, @Query))
EndIf
CloseLibrary(ExcelHelper)
EndIf
If Tablecontent
OpenWindow(0, #PB_Ignore, #PB_Ignore, 400, 400, "Inhalt von [Tabelle1$]:")
CreateGadgetList(WindowID(0))
ListIconGadget(0, 0, 0, 400, 400, "Feld1", 100, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
For FieldCounter = 2 To CountString(StringField(Tablecontent, 0, #CR$), #LF$)
AddGadgetColumn(0, FieldCounter - 1, "Feld" + Str(FieldCounter), 100)
Next
For LineCounter = 0 To CountString(Tablecontent, #CR$) - 1
AddGadgetItem(0, -1, StringField(Tablecontent, LineCounter + 1, #CR$))
Next
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
CloseWindow(0)
EndIf
Grüße ... Kiffi
a²+b²=mc²