Seite 1 von 1
Werte aus Excel auslesen
Verfasst: Dienstag 29. Mai 2007, 13:31
von Encinasola
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
Verfasst: Dienstag 29. Mai 2007, 18:20
von veers
Kannst du das ganze nicht als CSV exportieren? Dann kannst du mit dem CSV Modul arbeiten, welches sehr einfach zu bedienen ist.
Verfasst: Dienstag 29. Mai 2007, 18:30
von Encinasola
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.
Verfasst: Dienstag 29. Mai 2007, 18:46
von BlackJack
Wenn Du sie weiterverarbeiten willst, musst Du sowieso Python lernen. Also fang doch damit mal an.
Verfasst: Dienstag 29. Mai 2007, 19:05
von Encinasola
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.
Verfasst: Dienstag 29. Mai 2007, 19:44
von Andy
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.
Verfasst: Dienstag 29. Mai 2007, 20:05
von Encinasola
Vielen Dank mal.
Werde das so schnell wie möglich ausprobieren.
Und mich dan mal an die weiterverarbeitung machen.
Verfasst: Mittwoch 30. Mai 2007, 10:26
von N317V
Der Democode war doch hervorragend dokumentiert...
Verfasst: Donnerstag 14. Juni 2007, 08:18
von Encinasola
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
Verfasst: Donnerstag 14. Juni 2007, 09:01
von N317V
@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.
Verfasst: Samstag 16. Juni 2007, 14:07
von Andy
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.

@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.

Verfasst: Samstag 16. Juni 2007, 19:34
von N317V
@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.
Verfasst: Montag 2. Juli 2007, 11:42
von kmansour
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.
Verfasst: Dienstag 3. Juli 2007, 06:13
von Windtommyhoff
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
Verfasst: Dienstag 3. Juli 2007, 08:53
von N317V
Wenn die Programmierhilfe von Excel installiert ist, dann dort. Einfach in der Excel-Hilfe mal nach vba suchen.
Verfasst: Dienstag 3. Juli 2007, 09:13
von BlackJack
Es ging hier gerade um eine Lösung ohne Excel, sogar eine die unabhängig von Windows ist.

Verfasst: Dienstag 3. Juli 2007, 09:35
von N317V
Ach immernoch?! Dann hab ich die Formulierung "fürs excel handling" wohl falsch verstanden, sorry!

Verfasst: Dienstag 3. Juli 2007, 09:56
von Windtommyhoff
Nee, war schon richtig. ich hatte nach beidem gefragt. Danke für die Antworten!