2011年12月13日火曜日

pythonでexcelシートをごにょごにょして、trac wikiフォーマットで出力

久しぶりのpythonどえす。

エクセルで管理されたリストをtrac wikiフォーマットで出力したかったので、
チャレンジしてみました。

やりたいことは、

  1. excelシートからtrac wikiフォーマットで出力
  2. 出力した内容をtracにアップデートする
  3. できればエクセル更新される度に、自動で1、2の処理が実行される(svn or git管理ならフックしていけそう?)
今回は、1の部分のみできたので、忘れないうちに残しとこうと。
残りは今週中になんとか形にしたいな〜

まずは、pythonでexcelを操作するためのモジュール探し。
何個か情報があったのですが、このモジュールがよさげだったので、インストール。
※注意点として、xlsx(office 2007以上?)のフォーマットはまだ対応してませんでした。
今後のアップデートでの対応予定はあるそうです。

sudo easy_install xlrd


コードは、以下のような感じです。
ここのサイトを参考にしました。

===================================================
#!/usr/bin/env python
# - -  coding: utf-8 - - 

# モジュールのインポート
import xlrd

# エクセルシートの読み込み
wb = xlrd.open_workbook('/home/hoge/Documents/hoge.xls')

# シートの1番目を選択
sheets = wb.sheets()
s = sheets[0]

# セルを選択(列番号、行番号)
for cellid in range(0,10):
    c1 = s.cell(cellid,1)
    c2 = s.cell(cellid,4)
    c3 = s.cell(cellid,6)
    c4 = s.cell(cellid,7)
    c5 = s.cell(cellid,8)

# セルの値を取得
    val1 = c1.value
    val2 = c2.value
    val3 = c3.value
    val4 = c4.value
    val5 = c5.value

# trac wikiのフォーマットで出力
    out = "||" + val1.encode('utf_8') + "||" + val2.encode('utf_8') + "||" + val3.encode('utf-8') + "||" + val4.encode('utf_8') + "||" + val5.encode('utf_8') + "||" + '\n'

# ファイルに書きだす
    f = open('/home/hoge/test.txt','a')
    f.write(out)
    f.close()
===================================================

今回は、特定の行の値を出力した形になっています。
コード的にはもっと簡素にかけそうではありますが、とりあえず動くんでおいおい。

0 件のコメント:

コメントを投稿