5

XLRD モジュールのドキュメントによると、

 row_values(rowx, start_colx=0, end_colx=None)

「指定された行のセルの値のスライスを返します。」

そして、次の python コードが与えられた場合:

import xlrd
wb=xlrd.open_workbook("xl1.xlsx")
sh = wb.sheet_by_index(0)
for rownum in range(sh.nrows):
    print sh.row_values(rownum) 

出力は次のとおりです。

 [12.0, u'test.0']
 [34.0, u'te.st']
 [u'test123', u'12.test']

また、exel ファイルには次のデータが保持されます。

12.0、test.0、34.0、テスト、test123、12.test

では、出力によると、行としてどのようなデータ構造が得られるのでしょうか? それはタプルではありません (タプル型を印刷するとき、文字列の接頭辞として u' がないため)、そして u' の意味は何ですか? また、データ構造には、int と「非 int」の 2 種類のデータがあるようです。本当ですか?ドキュメントでこれに関する情報を見つけることができませんでした。ありがとう!

4

2 に答える 2

0

まず最初に!
使用しているxlrdのバージョンはわかりませんが、最新バージョンによると(この回答を書いている時点ではxlrd 0.9.4):

row_values() 

行の値をリスト形式で返します。これは、次のように入力して確認できます。

>>> type(sh.row_values(2))
<type 'list'>

次に、データ型を含む行の値を取得するには、次のように入力できます。

>>> sh.row(2)

次のようなものが返されます。

[number:12.0, text:u'test.0']

リストの最初の項目が数値で、2 番目の項目が文字列またはテキストとも呼ばれることを意味します。

最後にu、文字列の前にある は、それが Unicode エンコーディングであることを意味します。xlrd モジュールは、Excel シートのすべてのデータを Unicode エンコーディングにレンダリングしようとするため、u

xlrd モジュールの公式ドキュメント

于 2016-03-16T16:45:16.950 に答える