見出し画像

ゆるプロ!その23「Excel操作」

ゆるいプログラミング講座、略して「ゆるプロ!」
これは気軽に気楽に試せるゆるーいプログラミング学習コンテンツである。今回のお題は「Excel操作」

一言)

前回取り上げたデータベースを扱う話題である。Excelをデータベースとして扱う

準備)

pyodbcをインストールする

import pyodbc

Microsoft Excel Driverがあるかを確認する

pyodbc.drivers()

'Microsoft Excel Driver (*.xls)'があれば確認は完了
※自分の場合は64bit版のExcel Driverがなく32bit版しかなかったため、64bit版のPythonをアンインストール、32bit版のPythonをインストールして対応した。

Excel)

画像1

※Excelの拡張子はxlsで保存すること

例)Excel操作

import pyodbc
conn_str = (
   r"DRIVER={Microsoft Excel Driver (*.xls)};"
   r"DBQ=test.xls;"
   )
cnxn = pyodbc.connect(conn_str, autocommit=True)
crsr = cnxn .cursor()

crsr.execute("SELECT * FROM [table$] WHERE name = 'alex'")

for row in crsr:
   print(row)

cnxn.close()

結果)

('alex', 'basketball')

参考)

インストール

ただし、ライブラリの作者も言う通り、ODBCでExcelにアクセスするのは最適ではないので、何でもPythonやPythonのライブラリで解決しようとしないほうがよいかもしれない。

Overall though, it has to be said, Excel is not best suited for being accessed with an ODBC connection. You may want to consider using some other Python module instead of pyodbc, for example xlrd.

和訳)
しかし、全体的には、ExcelはODBC接続でアクセスするのには適していないと言わざるを得ません。pyodbcの代わりに他のPythonモジュール、例えばxlrdを使用することを検討してみてはいかがでしょうか。

おわりに)

当初、自分が思い描いていたライブラリのイメージと違った。もう少しライブラリの概要を把握してからお伝えするべきだった。次回はこちらが伝えたかったExcelの値を編集、更新を行う内容を書く。ただし、前述の通りPythonやライブラリで行わず比較的ポピュラーな方法をお伝えする。Microsoft製品ならばMicrosoft製品を使うほうが適している。

おわり!