7

XLRD を使用して Excel スプレッドシートのデータを解析し、イタリック体のセル値を特定しようとしています。この情報は、値が推定値か報告値かに関するフラグを設定するために使用されます。以下はデータの例です。

owner_name          year    Jan     Feb     Mar     Apr     May     Jun     Jul     Aug     Sep     Oct     Nov     Dec
Alachua, city of    1978    17.4    15.7    16.7    18.3    18.9    18.9    19.2    17.4    19.5    19.8    17.1    16.4
Archer, city of     1978    5.6      3.6     4.3     4.5     4.7     4.8     5.3     5.3     5.4     5.6     3.9     2.8

スプレッドシートからデータを引き出す方法の感触をつかむためにいくつかの基本的な関数をいじる以外は、XLRD をあまり使用していません。次に、イタリック体のセル値を識別する機能を追加する必要があります。

ご協力いただきありがとうございます...

編集: XLRD は、必要な機能を提供してくれました。答えてくれたジョン・マチンに感謝します。コードは次のとおりです。

import xlrd

book = xlrd.open_workbook('fl_data.xls',formatting_info=True)
sh = book.sheet_by_index(0)

for row in range(0,sh.nrows):
    font = book.font_list
    cell_val = sh.cell_value(row,1)
    cell_xf = book.xf_list[sh.cell_xf_index(row,1)]

    print cell_val,font[cell_xf.font_index].italic
4

2 に答える 2

1

ここでの私の解決策は、ここで見つけることができる「timmorgan」によって書かれたクラスに基づいていました。このクラスでは、操作対象の Excel ドキュメントが開いている必要があります。次に、Excel ドキュメント オブジェクトを作成し、範囲オブジェクトを返す 'get_range' メソッドを呼び出します。この範囲オブジェクトを使用して、指定されたセルのフォント プロパティを取得できます。

#--Requires excel document to be open
import pyexcel
book = pyexcel.ExcelDocument(visible=True) #--keeps excel open
cell = 'r171'
r = book.get_range(cell)
val = book.get_value(cell)

print val, r.font.italic, r.font.name
于 2011-07-18T20:21:01.417 に答える
0

xlrd を使用する (pyexcel ではなく、単独で):

python-excel google-group へのトピックへのリンクを次に示します。それはフォントの色を取得することですが、それで 99% の方法が得られます。

于 2011-07-19T12:10:56.497 に答える