ワークブックデータ関連の操作

個々のセルへのアクセス

WS = C [ ' A4 ' ] #は、細胞が存在しない場合、セルA4を返し、それが自動的に作成された 
WS [ ' A4 ' ] 4 =   #はセルA4が割り当てられている。4 
    
D = ws.cell(行= 4、 = 2列、値= 10)  セル10に割り当てられB4へ

  メモリ内に作成したワークシートは、任意のセルが含まれていない場合は、最初の訪問が作成されるときにのみ
  、これらの細胞がまだ割り当てられていないが、関数は、セル()を介した細胞を大量にアクセスするときこれらの細胞は、既にメモリ内に作成します

以下のために X における範囲(1,101 :)
      Y における範囲(1,101 ):
        ws.cell(行 = X、Y =列)#は、メモリ内の100×100の細胞を作成します

 

複数のセルへのアクセス

CELL_RANGE = WS [ ' A1 '' C2 ' ]   #のすべてのセルのC2にA1からアクセス

COLC = WS [ ' C ' ]   #のアクセス列Cのすべてのセルが 
= WS [col_range ' C:D ' ]   #のアクセス全ての列C内のセルと行Dの

row10 = WS [10]  行10のアクセスの全てのセル 
row_rangeのWS = [5:10]  セルの全てのライン10へのアクセスライン5 

Worksheet.iter_rowsを使用動作ユニットに()メソッドは、複数のセルを横断
するための ws.iter_rows(min_row = 1、max_col = 3、MAX_ROW = 2。。 のために細胞行:
         プリント(セル)
 '' ' 
输出:
<セルSheet1.A1> 
<セルSheet1.B1> 
<セルSheet1.C1> 
<セルSheet1.A2> 
<セルSheet1.B2> 
<セルSheet1.C2> 
''' 

使用Worksheet.iter_cols()方法以列为单位、遍历多个单元格
 COL  ws.iter_cols(min_row = 1、max_col = 3、max_row = 2 のためのセルにおけるCOL:
         プリント(セル
''」
输出:
<セルSheet1.A1> 
<セルSheet1.A2> 
<セルSheet1.B1> 
<セルSheet1.B2> 
<セルSheet1.C1> 
<セルSheet1.C2> 
''」

  パフォーマンス上の理由から、読み取り専用モードでWorksheet.iter_cols()が利用できない
  私は、メモリのサイズは、ファイルが億行を持っている場合は、事前に予測することはできないため、ファイルのサイズに制限されているので、これはかもしれないと思いますデータは
  ユニットとしてファイルを横断する時iter_cols方法であり、最初の列を横断する最初は、第千万の行を横断することができる、メモリは、もはや十分ではありません

 

バルクアクセスセル

WS [ ' C9 ' ] = ' Hello Worldの' 
タプル(ws.rows) 获取A1到C9的所有单元格、以行为单位
''」
输出: 
((< セルSheet.A1>、<セルSheet.B1> <細胞Sheet.C1>)
(<セルSheet.A2>、<セルSheet.B2>、<セルSheet.C2>)
(<セルSheet.A3>、<セルSheet.B3>、<細胞シート.C3>)
(<セルSheet.A4>、<セルSheet.B4>、<セルSheet.C4>)
(<セルSheet.A5>、<セルSheet.B5>、<セルSheet.C5>) 、
(<セルSheet.A6>、<セルSheet.B6>、<セルSheet.C6>)
(<セルSheet.A7>、<セルSheet.B7>、<セルSheet.C7>)
(<セルSheet.A8>、<セルSheet.B8>、<セルSheet.C8>)、 
(<セルSheet.A9>、<セルSheet.B9>、<セル
Sheet.C9>))''」

タプル(ws.columns) 获取A1到C9的所有单元格、以列为单位
''」
输出: 
((< セルSheet.A1>、
<セルSheet.A2>、
<セルSheet.A3>、
<セルSheet.A4>、
<セルSheet.A5>、
<セルSheet.A6>、
... 
<セルSheet.B7>、
<セルSheet.B8>、
<セルSheet.B9>)、
(<セルSheet.C1 >、
<セルSheet.C2>、
<セルSheet.C3>、
<セルSheet.C4>、
<セルSheet.C5>、
<セルSheet.C6>、
<セルSheet.C7>、
<セルSheet.C8> 、
<セル
Sheet.C9>))''」

  パフォーマンス上の理由から、読み取り専用モードでWorksheet.columnsは使用できません。

 

セル値処理
細胞の値はセルのみを返すプロパティWorksheet.valuesを、使用することができ、のみ処理する場合、値

この方法の反復だけセル値
のためのws.values:
    のための行:
      プリント(値)

Worksheet.iter_rows()とWorksheet.iter_cols()メソッドは、セルパラメータの発展の方法によって取得することができるのみ値
のための ws.iter_rows(min_row = 1、max_col = 3、MAX_ROW = 2、values_only =。。TRUE):
     印刷(行)
 '' ' 
出力:
(なし、なし、なし)
(なし、なし、なし)
' ' "

 

データストレージ

WS = C [ ' A4 ' ] 
c.value = ' こんにちは、世界'  割り当てられたセルA4へ

 

ファイルを保存し
、保存()関数を使用して、最も簡単で安全な方法であります

WB = ワークブック()
wb.save(' balances.xlsx '

注意:
  1)この方法で保存されたので注意され、警告なしに同じ名前の元のファイルを上書きします
  拡張子2)ファイルがXLSXする必要がありますが、そうでない場合はしない、オープンオフィスにつながる可能性

 

ストリーミング保存

あなたは、このようなピラミッド、フラスコまたはジャンゴや他のアプリケーションを使用して、あなたは、単にNamedTemporaryFile()機能を提供することができるときのように、ストリームにファイルを保存した場合

以下からの一時ファイルのインポートNamedTemporaryFile
 から openpyxl インポートワークブック

WB = ワークブック()
TMP AS NamedTemporaryFile()を持つ:
    wb.save(tmp.name)
    tmp.seek(0)
    ストリーム = tmp.read() 
    
負荷文書、属性テンプレートを指定することにより、確かに、ワークブックをテンプレートとして保存することができます 
WB = load_workbook(document.xlsx 
wb.template = 
wb.save(document_template.xltx 

#のプロパティを指定することで、負荷テンプレートファイル、テンプレートができ、Falseですワークブック文書を保存 
(WB = load_workbook "document_template.xltx ' 
wb.template = Falseの
wb.save(' document.xlsx "、偽as_template =)

  あなたは監視する必要があり、文書データは、テンプレートに文書を保存、またはドキュメント内のテンプレートを保存するためには、拡張属性
  そうでない場合、結果は、原稿台のエンジンを開けません。

  次のような状況では、失敗した保存されます

load_workbook = WB(' document.xlsx ' 
wb.save(' new_document.xlsm '拡張XLSXとして保存する、またはExcelを開くことができない

WB = load_workbook(' document.xlsm ' 
wb.save(' new_documentを。 XLSM #は、そうでない場合はExcelが開くことができない、真=プロパティkeep_vbaを指定する必要が

WB = load_workbook(document.xltm 「keep_vba = 真)
wb.save(new_document.xlsm "#を使用すると、テンプレートが必要な場合は、拡張子を指定する必要がありますある* .xltm

 

ロード・ファイル

また、ファイルを開くために)(openpyxl.load_workbookができ

openpyxl インポート load_workbookの#のload_workbookのインポートする負荷クラスファイル

WB2 = load_workbook(' test.xlsx ' 印刷(wb2.sheetnames)   #1 [ 'Sheet2の'、 '新:出力タイトル'、 'Sheet1の']、 ワークブックのワークシートの出力を名前

 

おすすめ

転載: www.cnblogs.com/shiliye/p/11541468.html