2017-02-13 5 views
-1

のPython 3.5とOpenPyXLモジュールを使用し、私はスプレッドシートにある列の数を把握することができた:OpenPyXLを使用してExcelスプレッドシートにすべての1行目の値をリストするにはどうすればよいですか?

In [1]: sheet.max_column 
Out [1]: 4 

そして私は4つのセルの各々の値をリストすることができました

In [2]: for rowOfCellObjects in sheet['A1':'D1']: 
      for cellObj in rowOfCellObjects: 
       print(cellObj.coordinate, cellObj.value) 
Out [2]: A1 Dog, B1 Cat, C1 Hamster, D1 Bigger Dog 

しかし、最初の手順をスキップし、単にxの数値を列挙する方法はありますか?

何列あるかわからないと、['A1':'D1]を繰り返し処理することは知られていません。もし200列があれば、['A1']の後に200番目の文字/数字を計算するのは時間がかかります。

+0

これは、ドキュメントで覆われています。 html#アクセス中の多数のセル –

答えて

0

サンプルを編集して必要なものを取得します。しかし、このようにすることはお勧めしません!

for rowOfCellObjects in sheet['A1':sheet.cell(row=1, column=sheet.max_column).coordinate]: 
     for cellObj in rowOfCellObjects: 
      print(cellObj.coordinate, cellObj.value) 

を使用し、次のサンプルのいずれか

Sampel1:イーター行ごとのすべての列、最初の行の後に壊れます。

for rows in ws.rows: 
    for cell in rows: 
     print('cell %s %s' % (cell.coordinate,cell.value)) 
    break 

詳細programatical制御:

サンプル2:反復し全のみ分/ max_row引数で指定された行から列、 1行後に終了します。

引数min/max_rowは、外部のデータであっても、任意の行を指すことができます。

for rows in ws.iter_rows(min_row=1, max_row=1, min_col=1): 
    for cell in rows: 
     print('cell %s %s' % (cell.coordinate,cell.value)) 

*パイソンでテスト:3.4.2 - openpyxl:https://openpyxl.readthedocs.io/en/latest/tutorial:* 2.4.1

1

ファイルのすべての行または列を反復処理する必要がある場合は、代わりにopenpyxl.worksheet.Worksheet.rows()プロパティまたはopenpyxl.worksheet.Worksheet.columns()プロパティを使用できます。

Manipulating a workbook in memoryを参照してください。

関連する問題