パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

EXCEL の xls ファイルを読めるライブラリ Spreadsheet::ParseExcel

とある名簿が xls ファイルで作られていて、管理・維持されている。本当は、何かのデータベースに載っけて管理するのが良さそうだが、まぁ、Excel でも、見たまま編集できる環境を用意する、という点では、簡便だし、扱える人も多い。サーバにデータベースを置いて、HTML な GUI を構築して、ブラウザからアクセスするのもかっこいいのだが、EXCEL 程簡単に多くの人に使える環境を作るのは無理だろう。GoogleApp とか使えばありかもしれないが?

それはさておき、この xls ファイルからメーリングリストサーバ fml 用のメンバーリストを抽出したい。また、それで fml のメンバーリストを更新したい、ということを考えた。そこで、CentOS で動いている fml を設置したサーバ PC に、Web ブラウザから xls ファイルをアップロードすると、その xls からメンバーリストを抽出して、すでに登録されている fml のメンバーリストと比較、増えていればメンバーを追加して、減っていれば削除する cgi を作ることにした。

xls ファイルを Linux 上で扱おうと思うと、色々方法があるようだが、今回は Perl のライブラリ Spreadsheet::ParseExcel を使わせてもらうことにした。xls ファイルを読んでしまうと、後は好きにセルにアクセスできるようだ。日本語の扱いは少々面倒なようだが(end0tknrのkipple - web写経開発 さんの記事)、今回はメールアドレスのリストを取り出すだけなので、ひとまずは問題なし。

ということで、慣れない PerlCGIスクリプトを書いて無事、所望の動作をさせることができるようになった。xls ファイルに関係なく常に登録されているべきリストをどう扱うかとか、xls には載っているが fml からは送信しないアドレスの扱いとか、色々面倒な所も、力技で解決している。この辺りは自分でスクリプトを書いているのでなんとでも。

ちゃんと使えば、xls からデータベースを構築(更新)することもできそう。色々面白いこともできそうだ。素晴らしいライブラリを提供してくださっている方々には感謝感謝。

Perl 初心者が書いたド汚いコードは公開したほうがいいのだろうか...用途がニッチなので、誰かの役に立つでもなし、添削してくれる人もいないだろうし。