2017-06-01 19 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アプリケーションとは通信しません。 – Xukrao

+0

わかりました。この問題を回避する方法はありますか?私は実際のPythonスクリプトを呼び出すPythonスクリプトを起動するためにexcelを使うことを考えました。しかし、これはどちらもうまくいきません。 ユーザーフレンドリーのためには、Excelのみを起動しなければならない場合は素晴らしいでしょう。 – Seabas

+0

スクリプトの目的は何ですか? 'InputData'の値で何をしなければなりませんか? – Xukrao

答えて

1

Pythonインストールの中核はインタープリタです。 Windowsマシンで作業している場合、インタプリタはpython.exeという実行ファイルです。これは実際にPythonコードを実行するソフトウェアです。

あなたは多くの異なる方法でインタプリタにコードを養うことができます。 1つの方法はSpyderアプリケーションによるものです。 Spyderアプリケーションは、インタプリタの上に構築された人間にとって使いやすいインタフェースです。 Spyderアプリケーションは、Pythonコマンドをインタプリタに中継し、インタプリタを実行させ、インタプリタによって生成された出力(たとえば、Spyderの変数エクスプローラで表示できる計算された変数値)を収集します。

は、しかし、スパイダーアプリケーションは、Pythonインタプリタを使用するには多くの可能な方法の1つにすぎません。また、あなたが探しているものであるとわかっているものから、Excelアプリケーションを使ってPythonコードをインタプリタに供給し、すべての出力を処理することができます。この場合、ExcelはSpyderではなくPythonインタプリタの上にあるインターフェースです(Spyderはまったく必要ありません)。

xlwingsウェブサイトのexample filesでは、Excelを使用して(VBAスクリプトを使用して)、Pythonインタプリタとのすべての制御と通信を行う方法がうまく説明されています。それには、データベース操作(SQLiteデータベースを使用)の例が含まれていても、それらをダウンロードして遊んでみることをお勧めします。次に、xlwings文書herehereにアクセスして、これらの例で何が起こっているかを詳細に理解してください。スパイダーで直接実行されるスクリプトによって作成された

+0

ありがとうございました。これは問題を解決するはずです。 – Seabas

関連する問題