ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

ClojureでExcelからPostgreSQLにデータを取り込む

Clojureの練習を兼ねて、Excelでデータを編集して簡単にデータベースに 反映できるLeiningenアプリケーションを作ってみました。

pirosuke/clj-xlsx2db

データベース操作にはKormaを使ってるのですが、 使いやすくて気に入ってます。

使い方

コマンドを指定してデータベース-Excel間のデータインポート、エクスポートができます。

例えばWebアプリを開発しながらExcelで編集して取り込み、動作確認してまた編集、 みたいな操作を繰り返すことを想定して、データベース接続情報や対象テーブル、 入出力先のExcelファイルパスはiniファイルに保存しておき、パラメータとして 渡す形にしています。

Excelに1行目がカラム名になっているシートをテーブルごとに出力する:

lein run export-table-info <iniファイルパス>

Excelにテーブルのデータを出力する:

lein run export-table <iniファイルパス>

Excelからテーブルデータを取り込む:

lein run import-table <iniファイルパス>

Leiningenアプリケーションなので、スタンドアロンjarファイルを生成すれば Leiningenが入っていない環境でも実行できます。

スタンドアロンJarファイル生成

lein uberjar

jarファイルでテーブルデータ出力

java -jar <jarファイル名> export-table <iniファイルパス>

iniファイルの記述方法については下記のサンプルiniファイルをご参照ください: https://github.com/pirosuke/clj-xlsx2db/blob/master/resources/sample.ini

各項目についてはREADME.mdに記載しています。

注意点等

今のところPostgreSQLにのみ対応しています。 そのうちMySQLにも対応するかも。

import-tableコマンドは既存データを削除してから取り込むので、 大事なデータが消えないようにご注意ください。

テーブルのデータ型によってはうまくインポートできないかも...。