2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

openpyxlでvlookupぽいことをやってみる

Last updated at Posted at 2018-05-26

#目的:B列のフラグが1の行だけを抜き出し、新たなシートに書き出す。
##環境:Python 3.6、openpyexl 2.5.3
##前提:ExcelはA列からM列まで、ブック名はdata.xlsx、シート名はSheet1、新しいシートには4行目から値を入れていく
##制約条件として、列指定のアルファベットをAからアスキーでインクリメントしているため、Z列までしか処理できないことがある。


import openpyxl as op

book = op.load_workbook('data.xlsx') #ブック読み込み
sheet = book['Sheet1']
book.create_sheet(title="new")  #新しいシート作成
sheet_new = book["new"]

y = 3   #新しいシートの初期貼り付け行-1

for row_num in range(2, sheet.max_row): # 先頭行をスキップ
    Report_flag = sheet.cell(row=row_num, column=2).value #B列の値取り出し

    a = []
    if Report_flag == 1:   #B列の値が1の時
        y += 1

        """row_num行の値を取得"""
        abc = ord("A")          #Aの asciiコード
        for i in range(13):
            v = sheet[str(chr(abc))+ str(row_num)].value #row_num行の値取得
            a.append(v)   #リストに追加
            abc += 1            #asciiコードインクリメント

        """新しいシートに貼り付け"""
        abc = ord("A")          #Aの asciiコード
        for j in range(13):
            sheet_new[str(chr(abc)) + str(y)].value = a[j]
            abc += 1            #asciiコードインクリメント

book.save("new.xlsx")

我ながら変数yの処理がいけていない。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?