52796


Pythonのopenpyxlモジュールを使って以下の動きを実現したいのですが、どうしてもうまくいきません。

「A列に"New"という文字列があれば、そこから1行下、5列左にあるセルに変数に格納されているリストの値を貼り付ける、貼り付けたら一行下のセルにリストの次の値を貼り付ける。」

以下のサンプルが現状書いたコードですが、ここからはどうやって書けば上記の動きを実現できるでしょうか？ご教示いただけますとたすかります。

＜サンプル＞

[code]

    import openpyxl
    import win32com.client
    import os
    
    #Get Flag items from outlook
    
    object = win32com.client.Dispatch('Outlook.Application')
    mapi = object.GetNamespace('MAPI')
    inbox = mapi.GetDefaultFolder(6)
    Flag = []
    
    for item in inbox.items:
        if item.IsMarkedAsTask:
            Flag.append(item.subject)
    
    #Update Task list excel    
    
    os.chdir("C:\\Users\\aaa\\Desktop")
    wb=openpyxl.load_workbook('★★★.xlsx')
    task_sheet=wb['Task']
    task_sheet['A1'] 
    New=task_sheet['A1'] 
    
[/code]


CC BY-SA 4.0
2019-02-15T08:29:24.013
52793
2019-02-15T10:19:54.590
2019-02-15T08:31:30.117
3060
31771
question
python excel openpyxl
PythonでOpenpyxl 特定のCellに変数のリストを貼り付ける


「リスト」というのが `Flag[]` だとすると、以下のようになると考えられます。  
A列には、何かしらの有効な値が入っていることを前提にしています。

[code]

    os.chdir("C:\\Users\\aaa\\Desktop")
    wb=openpyxl.load_workbook('★★★.xlsx')
    task_sheet=wb['Task']
    
    fLen = len(Flag)
    for i in range(1,(task_sheet.max_row + 1)):
        if task_sheet.cell(row=i, column=1).value == "New":
            j = i + 1
            for k in range(0,fLen):
                task_sheet.cell(row=(j + k), column=6).value = Flag[k]
            break
    
[/code]


CC BY-SA 4.0
2019-02-15T10:10:58.757
52796
2019-02-15T10:19:54.590
2019-02-15T10:19:54.590
26370
26370
52793
answer