2017-06-01 3 views
1

Ich muss einen Excel-Bereich als Liste in Python importieren. Ich habe den folgenden Grundcode entwickelt.Xlwings sicherer Excel-Bereich als Python-Liste

import xlwings as xw 

r2 = xw.sheets('Tabelle1').range('A1').value # last row of range 

r2 = int(r2) 

r2 = str(r2) 

r1 = 'B3:B' 

r3 = r1 + r2 
InputData = [xw.sheets('Tabelle1').range(r3).value] 

Dieser Code funktioniert einwandfrei, wenn ich den Code in meiner Spyder-Umgebung starte. Ich werde die Variable InputData als Liste im Variablen-Explorer sehen. Wenn ich jedoch das Skript aus Excel/VBA mit dem Xlwings-Tool starte, wird die Variable InputData nicht im Variablen-Explorer angezeigt.

Irgendwelche Ideen, wie ich das ändern könnte, so dass die InputData Variable immer als Liste angezeigt wird, egal wie ich das Skript starte?

+0

Nur Variablen, die von Skripten erstellt wurden, die direkt in Spyder ausgeführt werden, werden im Spyder-Variablen-Explorer angezeigt. Wenn ein Skript in einer anderen Umgebung ausgeführt wird (wie hier), kommuniziert es nicht mit der Spyder-Anwendung. – Xukrao

+0

Ah okay, ich verstehe. Gibt es eine Möglichkeit, dieses Problem zu umgehen? Ich dachte über das Verwenden von Excel nach, um ein Python-Skript zu starten, das das tatsächliche Python-Skript aufruft. Dies funktioniert jedoch auch nicht. Für die Benutzerfreundlichkeit wäre es großartig, wenn nur Excel gestartet werden müsste. – Seabas

+0

Was ist der beabsichtigte Zweck Ihres Skripts? Was ist mit den Werten in 'InputData' zu tun? – Xukrao

Antwort

1

Im Mittelpunkt jeder Python-Installation steht der Interpreter. Wenn Sie an einer Windows-Maschine arbeiten, ist der Interpreter eine ausführbare Datei mit der Bezeichnung python.exe. Es ist die Software, die tatsächlich Ihren Python-Code ausführt.

Sie können dem Interpreter auf verschiedene Arten Code zuführen. Ein Weg ist mit der Spyder-Anwendung. Die Spyder-Anwendung ist tatsächlich eine benutzerfreundliche Oberfläche, die auf dem Interpreter aufbaut. Die Spyder-Anwendung leitet Ihre Python-Befehle an den Interpreter weiter, lässt den Interpreter sie ausführen und sammelt dann alle vom Interpreter erzeugten Ausgaben (z. B. berechnete Variablenwerte, die Sie dann im Spyder-Variablen-Explorer anzeigen können).

Die Spyder-Anwendung ist jedoch nur eine von vielen Möglichkeiten, den Python-Interpreter zu verwenden. Sie können auch (und von dem, was ich verstehe, dass Sie das suchen) eine Excel-Anwendung verwenden, um dem Interpreter Python-Code zuzuführen und alle Ausgaben zu verarbeiten. In diesem Fall ist Excel die Schnittstelle über dem Python-Interpreter anstelle von Spyder (d. H. Spyder wird überhaupt nicht benötigt).

Dieser Ansatz der Verwendung von Excel (mit VBA-Scripting), um alle Kontrolle und Kommunikation mit dem Python-Interpreter zu tun, wird in diesen example files auf der xlwings Website schön demonstriert. Es enthält sogar ein Beispiel mit Datenbankoperationen (unter Verwendung einer SQLite-Datenbank). Ich würde vorschlagen, sie herunterzuladen und mit ihnen herumzuspielen. Dann gehen Sie die xlwings Dokumentation und here, um ein detailliertes Verständnis dessen zu erhalten, was in diesen Beispielen passiert.

+0

Vielen Dank. Dies sollte das Problem lösen. – Seabas