アフィリエイト広告を利用しています

広告

posted by fanblog
http://赤ヘル.comに引っ越しました。

python excel操作 -読み書き編-

昨日書いた「python excel操作 -book作成編-」の続きです。

昨日、自らに課した宿題であるファイルの読込。
これは以外と簡単にできました。

しかし、ファイル読込→編集→保存がうまくいかず・・・

そこで色々調べてみると、「pyExcelerator」よりも
「xlutils」・「xlwt」・「xlrd」というモジュールの方が使い勝手が良さそうです。

内訳としては、
xlutils  :  ファイルのコピーや色々w(調査中
xlwt : ファイルの編集・保存
xlrd : ファイルの読込

となっています。
これらの組み合わせで、ファイル読込→編集→保存が実現できましたので
今後使用するモジュールは決まりですかね。

これらのモジュールは以下からダウンロード出来ます。
http://pypi.python.org/pypi/xlutils

ではサンプルです。
=目的=
sample.xlsを開き、内容を読込⇒コピー⇒編集⇒保存する。

↓sample.xlsの中身はこんな感じです。シート名は[Test Sheet]↓


# -*- coding: utf-8 -*- 
import xlrd
import xlwt

book = xlrd.open_workbook("sample.xls") #sample.xlsの読込
print "シート数:", book.nsheets #シートの数
print "シート明細:", book.sheet_names() #シート明細

sh = book.sheet_by_index(0) #最初のシート読込
print sh.name, sh.nrows, sh.ncols #シート名・シート内MAX行数・シート内MAX列数
#こう出力されます⇒「Test Sheet 14 7」 行列数は0始まりではない事に注意!
print "セル A3 is", sh.cell_value(rowx=2, colx=0) #セルA3の値が見たいとき
↑ここは0始まり!

#エクセル編集モジュール呼び出し
wb = xlwt.Workbook()

#編集モジュールの指定。読込シートと同名で上書。別名でシート追加。
#ここでは上書きとする
ws = wb.add_sheet('Test Sheet')

#読込シートの中身を行と列の数分ループする
for rx in range(sh.nrows):
for lx in range(sh.ncols):
nRow = rx #行番号保持(必須ではない
nLin = lx #列番号保持(必須ではない
ws.write(nRow, nLin, sh.cell_value(rowx=nRow, colx=nLin)) #指定セルに書込

#おまけ@:シートの追加と書き込み
#シート[Test Sheet2]を追加し、以下の値を設定
ws2 = wb.add_sheet('Test Sheet2')
ws2.write(1, 1, "a")

#ファイルの保存(上書き保存)
wb.save("sample.xls")

#おまけA:保存ファイル名を変えればミラーコピーできます。
wb.save("sample2.xls")



どうでしょうか?
かなり簡単にできますね!

これでoracle等と接続してデータをExcelで管理なども出来そうです。
次回はもう少し実務に使えそうな事を調べてみます。

{a8.net http://books.livedoor.com/item/3222406}{a8.net http://books.livedoor.com/item/3247473}

⊆ ランキングに参加してみました!応援お願いします ⊇
にほんブログ村 野球ブログ 広島東洋カープへブログランキング 人気ブログランキングへ

この記事へのコメント

   
プロフィール

carper
電子タバコ「Simple Smoker(シンプルスモーカー)」 スターターキット 本体+カートリッジ30本セット 公認不正検査士とは FXで儲けたいならココ!
~Thanks Link~
https://fanblogs.jp/carpython/index1_0.rdf
×

この広告は30日以上新しい記事の更新がないブログに表示されております。