Excel-Zellen auslesen ohne Comate?

Anfängerfragen zum Programmieren mit PureBasic.
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Excel-Zellen auslesen ohne Comate?

Beitrag von Crawler »

Ich habe den Auftrag bekommen, ein kleines Tool zu programmieren. Und schon fangen die ersten Probleme an...
Es geht im Prinzip darum, die Daten einer Excel-Tabelle (xls-Dokument) auszulesen und in geänderter Form in eine XML-Datei zu schreiben. Diese Vorgabedatei als Exceldokument besteht bereits, diese will ich nun Zellenweise erfassen. Nach etwas Recherche geht das mit Comate, allerdings brauche ich im Prinzip nur diese eine Funktion "GibMirDenZellenwertDerZelle (Zeile.i, Spalte.i)" ;)
Geht das eleganter oder ist Comate wirklich das Mittel zum Zweck? Ich habe zwar mehrere Excel-Libraries gefunden, diese beschäftigen sich eher mit dem Schreiben von Excel-Dateien.
Für den Schubser in die richtige Richtung wäre ich sehr verbunden.

MfG Crawler
PB 4.41 | Win7 64bit
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von Kiffi »

einfacher als mit COMate wirst Du das in PB nicht bewerkstelligen
können. Dafür eignen sich andere Programmiersprachen besser
(beispielsweise VBS / VBA / VB6 / VB.Net, AutoIt, GFABasic, etc.)

Grüße ... Kiffi
a²+b²=mc²
Little John

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von Little John »

Hier ist Code von einem Datenbank-Anzeiger für Access-, Excel-, Dbase- und Text-Dateien ohne COMate. Ob das im vorliegenden Fall besser geeignet ist als COMate weiß ich nicht. Anspruchsvolle Aufgaben dieser Art mit PB zu bewältigen, wird ohne COMate wohl schwierig.

Gruß, Little John
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von Crawler »

Okay, dann schaue ich mir mal COMate an. Vielen Dank fürs Mitdenken!
Mir schien das angesprochene COMate zu "mächtig" für mein kleines Tool, aber wenn kein (einfacherer) Weg daran vorbeiführt, dann soll es eben so sein.
PB 4.41 | Win7 64bit
HemSA
Beiträge: 221
Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Kontaktdaten:

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von HemSA »

Hallo Crawler,
ich kenne zwar nicht den COMate, von dem her kann ich nichts darüber sagen was den Aufwand angeht. Ich selbst benutze den DispHelper. Der ist zwar schon etwas älter, aber für mich leistet er gute Dienste. Man kann da locker Inhalte von Zellen auslesen und sonst noch andere Sachen machen. Für ein neues Projekt passe ich nur die vorhandenen Programme an, das ist auch der Grund warum ich mich noch nicht mit COMate beschäftigt habe.

Einen Hacken hat die Sache allerdings, es geht nur bis PB 4.02, danach meckert der Compiler wegen der Includedatei "VariantHelper_Include.pb". Das könnte man vielleicht auch noch anpassen - aber warum die Arbeit - ich hab ja mehrere PB Versionen auf dem Rechner.

Das nur zur Info, für einen Neuanfang würde sich wahrscheinlich das einmalige hineinknien in COMate eher lohnen.
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von Crawler »

Nachdem ich mih nun ein bisschen eingelesen und ein paar Besipielscodes getestet habe, stehe ich nun wieder ganz am Anfang. Soviel ich bisher entnommen habe, setzt COMate ja vorraus, dass ich Excel installiert habe. Das ist auf meinem Rechner jedoch nicht der Fall, ich habe nur die xls-Datei vorliegen...

Der von Little John verlinkte Code läuft zwar ohne Fehlermeldung, es auch der Requester wird dargestellt. Wähle ich nun meine xls-Datei aus, schließt sich das Programm, ohne weitere Anzeige des Inhaltes der Datei.
PB 4.41 | Win7 64bit
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von bobobo »

vermutlich reicht ein installierter excel-viewer aus. ¿?¿?¿?
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Little John

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von Little John »

Crawler hat geschrieben:Der von Little John verlinkte Code läuft zwar ohne Fehlermeldung, es auch der Requester wird dargestellt. Wähle ich nun meine xls-Datei aus, schließt sich das Programm, ohne weitere Anzeige des Inhaltes der Datei.
Nur 'ne Idee: Vielleicht liegt's am Format der Exel-Datei, denn das ist ja von einer Excel-Version zur anderen z.T. durchaus unterschiedlich. Soweit ich sehe ist in dem von mir verlinkten Code leider nicht angegeben, von welchen Excel-Versionen die Dateien erzeugt wurden, mit denen er erfolgreich getestet wurde.
Hab's hier gerade mal getestet: Eine von Excel 2003 erzeugte Datei wird von dem Code im Großen und Ganzen richtig angezeigt (allerdings wird in der 1. Zeile F9, F8, F7 usw. angezeigt, obwohl das nicht in der Datei steht).

Gruß, Little John
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von Kiffi »

Crawler hat geschrieben:Soviel ich bisher entnommen habe, setzt COMate ja vorraus, dass ich Excel installiert habe.
nicht ganz korrekt. Wenn Du mit COMate ein Objekt vom Typ Excel erstellen willst (CreateObject), dann
musst Du Excel auf Deinem Rechner (bzw. da, wo der Code läuft) installiert haben.
Crawler hat geschrieben:Das ist auf meinem Rechner jedoch nicht der Fall, ich habe nur die xls-Datei vorliegen...
wie gut, dass Du uns das erst jetzt erzählst...

Wie dem auch sei: Eine Excel-Datei lässt sich auch mit beispielsweise einem ADO-Objekt auslesen.
Dann wird die XLS genauso gehandhabt wie eine Datenbank (genauso wie mit dem von Little John verwiesenen
Code von mpz; nur eben nicht via ODBC). Und ADO sollte auf Deinem Rechner aller Wahrscheinlichkeit nach
installiert sein.

Grüße ... Kiffi
a²+b²=mc²
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Re: Excel-Zellen auslesen ohne Comate?

Beitrag von Crawler »

Ich dachte anfangs, dass ich mit einem GetObject auch ohne Excel auskommen würde, das war dann wohl ein Gedankenfehler. Tatsächlich ist hier nur OpenOffice installiert, mit dem ich zwar auch im Excel97/2000/XP-Format speichern kann, diese Datei wird aber nicht vom verlinkten Code dargestellt.
Kiffi hat geschrieben:wie gut, dass Du uns das erst jetzt erzählst...
Habe nie was anderes behauptet... ;) Aber es ist nicht ungewöhnlich dass auf einem "Entwicklungsrechner" andere Software installiert ist als auf einem "Anwendungsrechner".
Aber es tut mir echt leid, dass es zu Missverständnissen kam, sorry.
PB 4.41 | Win7 64bit
Antworten