Hallo ich hätte gern eine Frage, ich würde gern die Daten die in der beigefügte Datei in c++ auslesen und weiter damit arbeiten. Kann mir jemand dabei helfen. Danke
Wenns morgen noch reicht kann ich dir Beispielcode von mir rauskopieren.
Am einfachsten ist es die Datei von Excel als CSV-Datei speichern zu lassen. Dann ist es eine einfache Textdatei und kann sehr einfach eingelesen werden. Der direkte zugriff auf Excel ist nämlich meist recht schwierig (MS eben;)). http://de.wikipedia.org/wiki/CSV-Datei gruß hans
Manne wrote:
> Wenns morgen noch reicht kann ich dir Beispielcode von mir rauskopieren.
danke, wegen der Zeit ist kein thema, es wäre ganz nett von dir.
Im Anhang findest du ein kleines Visual Studio 6 Projekt, das zeigt, wie man mit C++ auf ein Excel-Sheet zugreifen kann. Bitte erst in den Code reinschauen und die dort angegebene Excel Datei anlegen. Prinzipiell kannst auf diese Art alles machen, was du auch von Hand in Excel machen kannst. Über die Methoden, die an den Objekten alle dranhängen kannst du dich bei MSDN oder Google informieren.
Hallo zusammen, hab gerade versucht das beispielprogramm ans laufen zu bekommen. Habe dafür Visual Studie 2010 C++ genutzt und es hat leider nicht funktioniert. Es werden mir beim kompilieren jede menge fehler in der datei excel.h, die mit im Zipfile enthalten ist angezeigt. Kann das an der von mir genutzen Version von Visual Liegen oder müsste ich was anderes falsch gemacht haben ?
Stefan K. schrieb: > Es werden mir beim kompilieren jede menge fehler in der > datei excel.h, die mit im Zipfile enthalten ist angezeigt. Du könntest Dir ja diese Fehlermeldungen ansehen, beginnend mit der ersten. Die werden ja nicht ausgegeben, um Leute zu frustrieren, sondern sagen i.d.R. recht eindeutig, was ihnen nicht passt. Eine Datei namens excel.h ist im Beispiel übrigens nicht enthalten, da gibt es nur eine excel8.h - meinst Du die?
ups ja genau die meinte ich, das Ding ist nur, das bei 60 bis 70 Fehlermeldungen meistens nur 1 Punkt falsch ist und ich nicht der C++ überflieger bin, das zu erkennen. Meistens steht der Fehler ja in der ersten Fehlermeldung. Fehlermeldung: 1>C:\Programme\Microsoft SDKs\Windows\v7.0A\include\Excel_test\excel8.h(8): error C2504: 'COleDispatchDriver': Basisklasse undefiniert Springe ich nun an die stelle mit Visual, an der der Fehler sein soll, bzw Visual den Fehler ausgibt, habe ich den orginal code aus der zip datei. In der datei wird ja nun als erstes die Klasse wird ja nun eine Klassedefiniert: class _Application : public COleDispatchDriver { public: _Application() { } // Calls COleDispatchDriver default constructor _Application(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) { } _Application(const _Application& dispatchSrc) : COleDispatchDriver(dispatchSrc) { } .... hier stehen noch viele weiter punkte drinnen bei denen ich die weiteren Fehlermeldungen erhalte ... } Im meinem geringen Basisverständniss von C++ ist das die Defintin der Klasse COleDispatchDriver.der Fehler wird an der Öffungsklamemr der Klassendefinition angezeigt. Die Fehlermeldung verstehe ich so, das es eine Basisclasse geben müsste auf der diese Definition zurückgreift. Nun verstehe ich nicht was dann am Cod falsch sein soll bzw wo ich das ganze ändern muss, damit das ganze funktioniert, daher meine erste frage ob das ganze Programmspezisch ist oder nicht( befürchte ja nein...) Wenn einer eine komplette Lösung des PRoblems hätte wäre das natürlich traumhaft.
Stefan K. schrieb: > 1>C:\Programme\Microsoft > SDKs\Windows\v7.0A\include\Excel_test\excel8.h(8): error C2504: > 'COleDispatchDriver': Basisklasse undefiniert Eben. COleDispatchDriver ist hier unbekannt. Was macht man da? Man sieht in die Dokumentation http://msdn.microsoft.com/de-de/library/fw39e08y%28v=vs.80%29.aspx Und darin steht Header: afxdisp.h Ändere also die Headerdatei stdafx.h und trage dort #include <afxdisp.h> ein.
Falls es jemand interessiert, man kann so eine .xls Datei auch "zu Fuss" relativ einfach auslesen. Sie besteht aus einer Kette sogenannter Biff-Records: 1.Record 2. n. | WORD 16bit | WORD 16bit | BYTES variabel | .... | WORD 16bit | Recordnumber | Record Data Length | Record Data | .... | Recordnb. Man liest zuerst das erste WORD und dekodiert den Typ. Falls das der gewünschte Typ ist, zb, 0003 für floating Point dann kann man den anhand der Record Data Length einlesen und dekodieren. Wenn nicht hangelt man sich zum nächsten Record durch usw... gk
Hallo! Ich weiß nicht ob ihr das noch liest aber ich könnte eure hilfe gebrauchen. Wie ihr früher Ali K. geholfen habt brauch auch ich eure hilfe. Es geht praktisch um dasselbe (Excel Tabelle auslesen) nur mit dem Unterschied, ich habe eine große Excel-Tabelle wo ich zunähst die Messgrößen festlegen muss bzw wieviele ich habe und diese weiterschicke. Dann muss ich Zeile für Zeile jeden Wert abfragen und an einen Server schicken (der die Werte dann auf einer UI ausgibt). (C++) Ich habe kein großartiges Programmierwissen, also könntet ihr evtl. zu jeder Funktionsgruppe im Code dazuschreiben was sie macht, bzw wie sie Funktioniert? den Rest kann ich mir selber denken, hoffe ich. Ich wäre euch unendlich dankbar! mit freundlichen Grüßen Martin
Geht denn sowas nicht direkt per VBA? Mir hat mal einer vorgemacht, wie er in ein anderen Excel reinschaut und die Daten von da holt und umsoritiert, um sie in einem Excel zu verrechnen und auszugeben. ?
Musses unbedingt Visual Studio C++ sein?? schrieb: > Wenn es auch python tut: > http://www.python-excel.org/ Nein leider muss es C++ sein und ja ich bräuchte echt eure hilfe. Andreas F. schrieb: > Geht denn sowas nicht direkt per VBA? Mir hat mal einer > vorgemacht, wie > er in ein anderen Excel reinschaut und die Daten von da holt und > umsoritiert, um sie in einem Excel zu verrechnen und auszugeben. Ich weiß nicht, ich hab mich mit VBA in C++ nicht auseinandergesetzt. Kannst du mir ne Anleitung schreiben was ich tun muss um die Daten aus meiner Tabelle in ein Visual Studio Projekt einzulesen? Ich bräuchte das nämlich ziemlich bald. Dann wäre ich dir wirklich sehr dankbar. mfg Martin
Es gibt hier zwei Möglichkeiten. Du kannst entweder Excel per Automation ansteuern und darüber auf einzelne Zellen zugreifen, oder Du erzeugst aus Deinem Excel-Dokument eine ODBC-Datenquelle und greifst auf die wie auf eine Datenbank mit entsprechenden ODBC-Funktionen zu.
Habe das Excel-Test Programm von Manne laufen. Nun habe ich das Problem, dass ich ganze Arrays einlesen muss - also mehrere tausend Spalten untereinander. Manne sagt dass das geht, aber die Arrays zu initialisieren ist für mich schon zu hoch. Könnte mir da jemand helfen? Des weiteren wäre es gut, wenn es eine Möglichkeit gäbe schon vorab zu wissen, wie viel Zeilen Werte enthalten. So etwas wie getCount... Gruss Jo
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.