2017-06-01 46 views
1

我需要導入一個Excel範圍作爲Python列表。我想出了以下基本代碼。Xlwings安全的Excel範圍如Python列表

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] 

當我在Spyder環境中啓動代碼時,此代碼工作得很好。我將在變量瀏覽器中看到變量InputData作爲List。但是,當我使用Xlwings工具從Excel/VBA啓動腳本時,變量InputData將不會顯示在變量資源管理器中。

任何想法如何我可以修改這個InputData變量總是會顯示爲一個列表,無論我如何啓動腳本?

+0

只有在Spyder中直接運行的腳本創建的變量纔會顯示在Spyder變量瀏覽器中。如果腳本在任何其他環境中運行(例如您在此處執行),則它不會與Spyder應用程序進行通信。 – Xukrao

+0

好吧,我明白了。有沒有解決這個問題的方法?我想過使用excel來啓動一個Python腳本,它調用了實際的Python腳本。但是這也不起作用。 對於用戶友好性來說,如果只有excel必須啓動,那將是非常棒的。 – Seabas

+0

腳本的預期用途是什麼? 「InputData」中的值需要做什麼? – Xukrao

回答

1

任何Python安裝的核心都是解釋器。如果你在Windows機器上工作,那麼解釋器就是一個名爲python.exe的可執行文件。它是一個實際運行你的Python代碼的軟件。

您可以用許多不同的方式將代碼提供給解釋器。一種方法是通過Spyder應用程序。 Spyder應用程序實際上是構建在解釋器之上的人性化界面。 Spyder應用程序會將您的Python命令轉發給解釋器,讓解釋器運行它,然後收集解釋器生成的任何輸出(例如,您可以在Spyder的變量瀏覽器中查看計算出的變量值)。

但Spyder應用程序只是使用Python解釋器的許多可能方式之一。你也可以(並根據我的理解,這是你正在尋找的)使用Excel應用程序將Python代碼提供給解釋器並處理所有輸出。在這種情況下,Excel是Python解釋器而不是Spyder的接口(即Spyder根本不需要)。

xlwings網站上的這些example files上很好地演示了使用Excel(使用VBA腳本)進行所有與Python解釋器的控制和通信的方法。它甚至包括一個數據庫操作的例子(使用SQLite數據庫),我建議下載它們並與它們一起玩。然後轉到xlwings文檔herehere以詳細瞭解這些示例中發生的情況。

+0

非常感謝。這應該可以解決問題。 – Seabas