見出し画像

xlwingsの基本編①:Pythonからエクセルに値を直接入力する方法

エクセルとPythonをかけ合わせた方法は需要があるのか、公開してからのアクセスが結構あるので、完走に向けてこのシリーズは作っていこうと思っています。初回をまだご覧になられていない方は以下を参照ください。

さて、今回はエクセル操作でよくやる5選を選定し、紹介していきます。

・エクセルとPythonの接続
(※エクセルをPythonから操作する際に必要)
・シートの指定
・値の入力
・関数の入力
・セルに名前をつける

Pythonでエクセルに値を入力するのってどうやるの?にダイレクトに答える内容となっていますので、最後までお付き合いください!!

これらができたら実際にPythonとエクセルを合体させて、自由に動かせるという最低限の機能が網羅できることになります。では早速やっていきましょう。

・エクセルとPythonの接続

対象としたいエクセルを開いた状態で以下を実行します。

import xlwings as xw
wb = xw.Book("○○(ファイル名).xlsx")

xlwingsをimportして、xwという名前で使用するようにしています。その後に、xw内にあるBookを呼び出し、そのパラメータであるファイル名を呼び出すことによって、wbという変数にエクセルが接続されていて、その機能の呼び出しが可能となります。

・シートの指定

では、次に、ファイルの中からシートを指定する方法を紹介します。以下のコードを実行します。

ipt = wb.sheets[0]

Sheetsが、xlwingsの中のシートの選択に関連するもので、上記例ではそこで[0]を指定しています。これは最初のシートを意味するもので、エクセルの最初のシートに当たります。

実際のシートの名称がSheet1になっているのですが(皆さんの環境では別の名前になっている状況もあるかもしれませんが、それには依存しません)、シートの0番目という形の指定でこれを特定することになります。

このコードの実行でSheet1がActiveな状態(選択された状態)となります。そこで次は、シート内でのセルにデータを入力するステップです。

・値の入力

値を入力していきましょう。具体的には以下を実行してみます。

ipt["A1"].value = 3
ipt["A2"].value = 2

すると、エクセルに値が表示されます。

どうでしょうか?うまく言ったでしょうか?

全体の流れのイメージとしては以下になります。

・関数の挿入

次に関数を入れていきましょう。実行するコードは簡単で以下を入れることで、上記で入れてきた値を合計する関数を入力することができます。

ipt["A3"].formula = "=sum(A1:A2)"

エクセル上に5が入力されていて、かつ、数式が入っている状態になったかと思います。

・セルに名前をつける

では、最後にセルに名前をつける方法をご紹介します。名前をつけることによって、名前による値の取得が可能となるメリットがあります。今回は、上記の合計のセルをSumという名前をつけてみます。
コードの実行前はA3セルは以下で★で印をつけた箇所を見ていただくとA3となっています。

ここで、以下のコードを実行してみると、

ipt["A3"].name = "Sum"

Sumに変わります。これに寄って、A3をめがけて値をとることもできれば、Sumという名前で値をとることもできるようになります。

上記の例では、両方同じ値になっているため、名前としてSumがセルについていることで値をとることができるようになっていることが確認できました。

今回は基本的な操作方法に絞って、具体的な機能を紹介しました。ぜひ、エクセルをPythonから操作する方法として習得して、自分のPython力を上げていきましょう。

この記事が気に入ったらサポートをしてみませんか?