Ich habe es geschafft Excel zu öffnen und Daten einzugeben.
Danke für den hilfreichen Support.
Aber wie kann ich jetzt aus Excel mit Python Daten einlesen
Freue mich auf Ideen.
Excel auslesen
Hallo!Was es für andere Methoden und Eigenschaften gibt, musst Du der Doku der Anwendung entnehmen, die Du steuern willst, bei Excel in erster Linie die VBA-Doku. Ein bisschen Tüfteln ist da aber angesagt. O-Ton aus der pywin32-Doku "How do I know which methods and properties are available? Good question. This is hard! You need to use the documentation with the products, or possibly a COM browser."
Tipp: Wenn Du tiefer in die Materie einsteigen willst, besorg' Dir das Buch "Python Programming on Win32" [1]. Oder lade Dir zumindest den Beispielcode von der Verlagsseite runter. Enthalten ist da u.a. die Klasse "easyExcel", die den Excel-Zugriff etwas komfortabler macht.
Jan
[1] http://www.oreilly.com/catalog/pythonwin32/
Psus hat geschrieben:Aber wie kann ich jetzt aus Excel mit Python Daten einlesen
Code: Alles auswählen
ZelleZ6S4 = o.Cells(6,4).Value
print ZelleZ6S4
Tipp: Wenn Du tiefer in die Materie einsteigen willst, besorg' Dir das Buch "Python Programming on Win32" [1]. Oder lade Dir zumindest den Beispielcode von der Verlagsseite runter. Enthalten ist da u.a. die Klasse "easyExcel", die den Excel-Zugriff etwas komfortabler macht.
Jan
[1] http://www.oreilly.com/catalog/pythonwin32/
Hi Psus,
"aus Excel mit Python Daten einlesen" wer soll diesen Satz verstehen???
Sicher ist es möglich, aus Excel heraus ein Python-Script anzustoßen, weches irgendwas macht und dann kann man die Daten einlesen.....
Denke, dass war mit der o.g. "Wortkombination" nicht gemeint. Ich nehme an, "wie bringe ich Daten per Python in eine xls-Datei?"
Lösungen:
1.) per Win32-COM wie von Voges beschrieben
=> funktioniert sehr gut (eigene Sachen getestet) in beide Richtungen Excel <==> Python
2.) BIFF-Format
Die Excel Dateien sind in einem mehr oder weniger offenen Datenformat dem s.g. BIFF abgelegt, welches man relativ einfach (binär) schreiben kann. Klassen dazu gibt es u.a. in Perl und PHP, wo man sich die Sache ansehen und ggf. "nachbauen" kann. Das Funktioniert natürlich auch in Python!
siehe mein Beitrag "dirty hacking des BIFF-Formates:" unter
http://python.sandtner.net/viewtopic.ph ... c&start=15
"aus Excel mit Python Daten einlesen" wer soll diesen Satz verstehen???
Sicher ist es möglich, aus Excel heraus ein Python-Script anzustoßen, weches irgendwas macht und dann kann man die Daten einlesen.....
Denke, dass war mit der o.g. "Wortkombination" nicht gemeint. Ich nehme an, "wie bringe ich Daten per Python in eine xls-Datei?"
Lösungen:
1.) per Win32-COM wie von Voges beschrieben
=> funktioniert sehr gut (eigene Sachen getestet) in beide Richtungen Excel <==> Python
2.) BIFF-Format
Die Excel Dateien sind in einem mehr oder weniger offenen Datenformat dem s.g. BIFF abgelegt, welches man relativ einfach (binär) schreiben kann. Klassen dazu gibt es u.a. in Perl und PHP, wo man sich die Sache ansehen und ggf. "nachbauen" kann. Das Funktioniert natürlich auch in Python!
siehe mein Beitrag "dirty hacking des BIFF-Formates:" unter
http://python.sandtner.net/viewtopic.ph ... c&start=15
gruss x-herbert
ich hätte auch eine frage :
und zwar bekomme ich eine liste in xls format geschickt (leider)
ich benutze aber linux , win32com funktionert nicht.
wie kann ich excel dateien unter linux mit python öffnen ?
und zwar bekomme ich eine liste in xls format geschickt (leider)
ich benutze aber linux , win32com funktionert nicht.
wie kann ich excel dateien unter linux mit python öffnen ?
- strogon14
- User
- Beiträge: 58
- Registriert: Sonntag 23. Februar 2003, 19:34
- Wohnort: Köln
- Kontaktdaten:
Was ist den genau in den Excel-Dateien drin? Wenn es nur um ein paar Zahlen/Wörter in Tabellenzellen geht, reicht auch das CSV Format.wie kann ich excel dateien unter linux mit python öffnen ?
Für CSV es zig Module für Python (z.B. http://object-craft.com.au/projects/csv/)
Bitte entweder deine Quelle, dir CSV zu senden oder benutze OpenOffice oder Gnumeric, um .xls in .csv zu wandeln.
Wenn Du eine Konverter brauchst, der von der Kommandozeile funktioniert (damit Du ihn von Python aus mit os.popen verwenden kannst), schau dir mal http://chicago.sourceforge.net/xlhtml/ an.
HTH, Chris
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Ich nehme an, du möchtest die weiter bearbeiten. Dann kann ich nur Open Office oder Staroffice empfehlen oder wollltest du eine reine Python Lösung?rogen hat geschrieben:ich hätte auch eine frage :
und zwar bekomme ich eine liste in xls format geschickt (leider)
ich benutze aber linux , win32com funktionert nicht.
wie kann ich excel dateien unter linux mit python öffnen ?
Hans
- strogon14
- User
- Beiträge: 58
- Registriert: Sonntag 23. Februar 2003, 19:34
- Wohnort: Köln
- Kontaktdaten:
Ich habe mal ein kleines Beispielskript geschrieben, das ein ausgewähltes Tabellenblatt einer Excel Datei in eine CSV Liste wandelt. Dabei wird das o.g. Programm xlhtml verwendet. Mittels des csv Moduls (<http://www.object-craft.com.au/projects/csv/>) kann der String mit der CSV Liste dann noch in eine Python Liste geparst werden.
Fühlt euch frei, dies zu benutzen wie ihr wollt. Wer Fehler findet, darf sie behalten
Code: Alles auswählen
"""xls2html.py FILE [page no]"""
import popen2
import csv
def xls2list(file, page=0):
csvraw = xls2csv(file, page)
p = csv.parser()
return [p.parse(line) for line in csvraw.split('\n')]
def xls2csv(file, page=0):
"""Converts a selected sheet in an Excel file to CSV."""
chout, chin, cherr = popen2.popen3('xlhtml -csv -xp:%i "%s"' % (page, file))
out = chout.read()
err = cherr.read()
chout.close(); chin.close(); cherr.close()
if err:
raise IOError, err
else:
return out
def main(args):
if len(args) == 2:
page = int(args[1])
else:
page = 0
try:
print xls2csv(args[0], page)
except IndexError:
print __doc__
if __name__ == '__main__':
import sys
main(sys.argv[1:])