openpyxlが便利。

はじめに

私自身が業務の類でExcelを使うことはないのですけども、お客さまとか他の方とデータのやり取り等を行うときに用いたりはします。とはいえ基本見てちょっといじるだけですので、macOSに付いてくるNumbersで足りていて、Excel自体は使っていません。ごめんね、Microsoftさん。

でまぁ、いただたいたファイルをPythonでゴニョゴニョしたりするのですけど、そんな時はopenpyxlを使うと便利です。

使い方のまとめページ

いっつも忘れた頃に必要になったり、そもそも覚えておく気概もないのでまとめておくかぁと思いましたけれど、もっときれいにまとまっている記事がありましたので、そちらをメモしておきます。

wb = openpyxl.load_workbook('spam.xlsx')

s = wb['Sheet1']
eoc = f'{get_column_letter(s.max_column)}{s.max_row}'

とかして、最終行最後のカラムを取ったりもよくしますね。もっといい方法あると思うけど探せてない。

django-excel

私も大好きDjangoさんでデータをガッと取り出してグッと出力するときはdjango-execlを使うと便利です。Sheet毎に配列を作って、Sheet別に辞書に突っ込んではい、とかでいけます。もちろん入力にも使えるのですけども、流用が効くこともあって直接openpyxlを使うことが多いですね。

このdjango-excelさん、pyexcelというのがベースになっていますが、xlsxファイルを扱う分にはそのpyexcelさん(pyexcel-xlsx)もopenpyxlがベースになっているので、最終的には同じ感じで扱えます。良かった良かった。

さいごに

本当はボクらみたいなのじゃなくて、日々日常的にExcelファイルを手作業でやいのやいのしている人にこそ活用して欲しいと思うのだけど、なかなかそうもいかないのかな、なんとかしたいな……。とか思って幾星霜。覚えて損はないと思いますよ。ちょっとだけ頑張ってみましょうか。

前に読んで良かったって思っていた本が改訂されるらしい!

かいているひと

しもだ たくろう a.k.a. たくぅ

1996年くらいからこんなことをやっているのでなかなかのおじさんです。一応今もWeb系の仕事はやっているぽい。実がないので口の方で煙に巻きます。「ぺちぱな。」ん。くず界のくず。 SW-2066-7468-5602✨