職場はメイン言語がJavaなので、プロジェクトでPythonを使う機会は ないのですが、キャプチャを撮ったりExcelを操作したりする作業を 「こっそり自動化」するスクリプトをPythonで書いたりしています。
最近はSE作業で何かとExcelを使うことが多いので、 Excel作業の自動化をいろいろと模索しています。
PythonでExcel操作できるライブラリはいくつかあって、 xlwingsやExcelPythonなんかが話題になっていたので 調べてみたのですが、後々他のメンバーに作成した ファイルを共有したりすることを考えると、 Excelと切り離して処理が書ける方が良さそうです。 (xlwingsはVBAでPythonを呼び出す必要があり、ExcelPythonはアドオンを入れる必要がある)
今日は以前から面倒だと思っていた、 初期データ作成用INSERT文を作成するスクリプト、 というか関数を作りました。 Windows環境で使うことを想定しています。
下記のような、1行目がテーブルのカラム名で、 2行目以降がデータになっているシートを読み込んで、 行ごとにINSERT文を作成して別ファイルに出力します。
ID | NAME | ADDRESS |
1 | 山田 | 大阪府 |
2 | 岡田 | 東京都 |
出力先ファイルやテーブル名は引数で指定します。 複数のシートを一括処理可能です。
使用例:
output_insert_sqls('テストデータ.xlsx', 'C:/Users/test/Desktop/insert_data.sql', [ '会員一覧' ,'商品一覧' ], [ 'users' ,'products' ] )
他にも、CREATE TABLE文やDELETE文を生成する関数を追加すれば、 色々と作業を楽にしていけそうです。
セルを処理している部分は文字列とfloatしか考慮しておらず、 荒めのコードになっているので、またブラッシュアップしていきます。
unicode_literalsは今回初めて使い、どういう原理か 全く分かっていませんが、とりあえずこれをインポートすることで Windowsのパスが正しく認識できるようになりました。
- 作者: 実践ワークシート協会,田中亨
- 出版社/メーカー: 翔泳社
- 発売日: 2015/06/15
- メディア: Kindle版
- この商品を含むブログを見る