Werte aus Excel auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Encinasola
User
Beiträge: 5
Registriert: Freitag 25. Mai 2007, 11:29

Hi.

Ich sitze hier vor meiner Projektarbeit bei der ich mit einer Regelkarte von DSpace arbeite und dem passenden Programm.

Nun möchte ich daten aus Excel auslesen.

Es gibt in der Hilfe auch ein Demofile, was zeigt, wie man Daten in Excel schreibt und dann ausliest.




Ich möcht jetzt aber keine Daten schreiben sonder nur auslesen.
Möchte also nur den Teil mit dem Auslesen übernehmen.

Da ich aber von Python keine Ahnung habe, wäre es schön, wenn mir jemand sagen könnte, wie ich dem Programm sage, aus welcher *.xls Datei er lesen soll. Und was ich alles von dem Demofile benutzen kann.

Vielen Dank im Voraus

Encinasola
Zuletzt geändert von Encinasola am Montag 18. Juni 2007, 14:07, insgesamt 2-mal geändert.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Kannst du das ganze nicht als CSV exportieren? Dann kannst du mit dem CSV Modul arbeiten, welches sehr einfach zu bedienen ist.
Encinasola
User
Beiträge: 5
Registriert: Freitag 25. Mai 2007, 11:29

Das Problem ist, dass es Vorgaben vom Professor gibt.

Ich möchte ja auch keine Werte exportieren, sondern von einer bestehenden Excel-Tabelle einlesen und weiterverarbeiten.
BlackJack

Wenn Du sie weiterverarbeiten willst, musst Du sowieso Python lernen. Also fang doch damit mal an.
Encinasola
User
Beiträge: 5
Registriert: Freitag 25. Mai 2007, 11:29

Das mit dem weiterverarbeiten, ist ein ganz anderes Blatt, da ich ja das Python-Programm in meine "DSpace C-Programm" einbinden muss, wäre aber schon mal ein schritt, wenn ich daten dafür hätte.
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Hallo Encinasola und willkommen hier im Forum! :)

Code: Alles auswählen

#!/usr/bin/env python 
# -*- coding: iso-8859-1 -*- 

import os 
import win32com.client 


filename = os.path.abspath("Mappe1.xls") 
valuelist = [] 

excel_app = win32com.client.dynamic.Dispatch("Excel.Application")
excel_workbook = excel_app.Workbooks.Open(filename)
excel_sheet = excel_workbook.Worksheets("Tabelle1")
for value in excel_sheet.Rows(1).Value[0]:
    if value is not None:
        valuelist.append(value) 
del excel_sheet 
 
excel_workbook.Close()
del excel_workbook
excel_app.Quit()
del excel_app 

print valuelist
So kann man zeilenweise aus Excel lesen. Tja, das weiterverarbeiten ist dann wirklich so´ne Sache. Aber da kommt es drauf an, was Du da wirklich von Python verlangst. (Bzw. von der W32-API)
Schau hierzu auch noch mal in die Suche.
Encinasola
User
Beiträge: 5
Registriert: Freitag 25. Mai 2007, 11:29

Vielen Dank mal.

Werde das so schnell wie möglich ausprobieren.

Und mich dan mal an die weiterverarbeitung machen.
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Der Democode war doch hervorragend dokumentiert...
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Encinasola
User
Beiträge: 5
Registriert: Freitag 25. Mai 2007, 11:29

Also vielen dank mal für den Code.

Das klappt auch sehr gut.

Nun möcht ich aber nicht nur eine Zeile auslesen:

hab es mit

BlockData = Workbook.GetData und so weiter versucht.

Bekomme da aber nur Fehlermeldungen.

Könnte mir nochmal jemand helfen?

Gruß Uwe
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

@Encinasola: Klar helf ich Dir gern! Tipp Nummer Eins: folge dem Link in meiner Signatur und hör nicht auf zu lesen bis Du genau weißt warum ich denke, dass Du es lesen solltest.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Encinasola hat geschrieben:Also vielen dank mal für den Code.
Nun möcht ich aber nicht nur eine Zeile auslesen:
hab es mit
BlockData = Workbook.GetData und so weiter versucht.
Bekomme da aber nur Fehlermeldungen.
Könnte mir nochmal jemand helfen?
Gruß Uwe
Hallo Uwe,

Gerngeschehen. - Du hast es versucht! Du hast Fehlermeldungen bekommen! Wo ist Dein Code? Wo ist Deine Fehlermeldung? Wobei können wir Dir helfen? Weißt Du welche Codestelle nicht funktioniert? Ich glaube auch nicht ernsthaft, dass das die erste Python-Aufgabe ist, die Ihr von Eurem Professor erhalten habt, hmh. :?

Bitte lagere vor Deinem nächsten Post, Deinen Code aus dem ersten Post (editier ihn) und den neuen z.B. ins LodgeIt aus, und verlinke hier nur darauf, damit andere User noch antworten können. (Wegen PHP-Forum-Problem mit längeren Codeschnippseln)

Das ist im Prinzip das, was N317V schon sagen wollte. Er hatt einfach nur vergessen, dass es in seiner Signatur auch um Nettiquette gegenüber Forumsneulingen geht. :roll: @N317V: Siehe hier: Fragen auf eine hilfreiche Art beantworten. Glaub mir, ich habe echt kein Bock mich zu streiten, finde jedoch manchmal bist Du Neulingen gegenüber wirklich nicht sehr freundlich. :|
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

@Andy: Nein, hab ich nicht vergessen und auch bei erneuter Studie des Textes und meiner Beiträge hier in diesem Thread kann ich nicht sagen, dass ich mich falsch verhalten hätte. Es gibt immer wieder Neulinge, die konkrete Fragen stellen, nur den Code posten, der Probleme macht, samt Fehlermeldungen und die allgemein von vornherein die Bereitschaft signalisieren selbst zu arbeiten. Und es gibt Leute wie Uwe, die ganz offensichtlich fertige Lösungen erwarten und Leute wie Dich, die diese auch noch liefern. Sei mir bitte nicht böse, aber ich finde beides eher kontraproduktiv für so ein Forum. Ich verstehe dies hier als ein Forum für Leute, die Interesse an der Programmiersprache Python haben. Mit Verlaub, ich hab bisher nicht den Eindruck als würde Uwe dazu gehören. Im Übrigen war ich bis Du eine Lösung gepostet hast so freundlich den Thread einfach zu ignorieren. Freundlicher bin ich leider nicht. Wenn ich mich äußere, dann immer sehr direkt.

Excel-Threads, die zur Lösung von Uwes Problemchen enorm beitragen würden gibt es überdies in diesem Forum auch schon ein paar. Sein zuerst geposteter Code ist, wie schon erwähnt, recht gut dokumentiert. Er hat auch für seine zweite Frage schon die richtige Stelle im Quelltext entdeckt. Ich sehe hier momentan keinen Handlungsbedarf. Außer eben ihn darauf hinzuweisen, dass man ihm so nicht helfen kann.

JFTR: Ich streite mich auch nicht. Ich bin die Ruhe selbst.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
kmansour
User
Beiträge: 9
Registriert: Mittwoch 14. Februar 2007, 15:07

Encinasola hat geschrieben:Also vielen dank mal für den Code.

Das klappt auch sehr gut.

Nun möcht ich aber nicht nur eine Zeile auslesen:

hab es mit

BlockData = Workbook.GetData und so weiter versucht.

Bekomme da aber nur Fehlermeldungen.

Könnte mir nochmal jemand helfen?

Gruß Uwe
Ich arbeite ungern mit win32.
Hier mal eine Lösung die xlrd verwendet und plattformunabhängig ist. Man braucht dafür kein installiertes Excel, kann aber trotzdem direkt mit Excelsheets arbeiten.
Ich denke da sieht man relativ einfach wie man Zellen, Spalten oder Zeilen ausliest.
Benutzeravatar
Windtommyhoff
User
Beiträge: 32
Registriert: Donnerstag 15. März 2007, 13:01
Kontaktdaten:

Sowas gibts nicht zufällig auch fürs schreiben in excel, oder?

Weiß sonst jemand, wo ich die Doku oder ein tutorial finde, mit den ganzen Befehlen fürs excel handling...?!

Danke schon mal
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Wenn die Programmierhilfe von Excel installiert ist, dann dort. Einfach in der Excel-Hilfe mal nach vba suchen.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
BlackJack

Es ging hier gerade um eine Lösung ohne Excel, sogar eine die unabhängig von Windows ist. ;-)
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Ach immernoch?! Dann hab ich die Formulierung "fürs excel handling" wohl falsch verstanden, sorry! :-)
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Benutzeravatar
Windtommyhoff
User
Beiträge: 32
Registriert: Donnerstag 15. März 2007, 13:01
Kontaktdaten:

Nee, war schon richtig. ich hatte nach beidem gefragt. Danke für die Antworten!
Antworten