pythonでエクセルのデータをリスト化して、別のシートに書き込むということをしたいと思っています。
範囲が広いので、copyではなく、
文字列にして、appendで書き込みたいと思います。
困っているのは、
書き込む場所の指定をしたいのですができないことです。
読み込みは[A7]からで 書き込みはの[D7]から にしたいのですが、
どこで指定をすれば良いかわかりません。
リストにNoneを4ついれるのは最終手段にしたいです。
どうぞよろしくお願い致します。
python
1import openpyxl 2 3wb = openpyxl.load_workbook('C:/Users/210401W.xlsx',keep_vba=True) 4ws = wb['トレンドデータ2'] 5wb_move = openpyxl.load_workbook('C:/Users/練習.xlsx',keep_vba=True) 6ws_move = wb_move['Sheet3'] 7 8#シート上の最大行 9maxRow = ws.max_row + 10 10 11#シート上の最大列 12maxClm = ws.max_column + 1 13 14#列ループ 15for j in range(1,5): 16 if j == 4: 17 #行を逆ループ 18 for i in reversed(range(1,maxRow)): 19 #セルがNoneだったら 20 if ws.cell(row=i, column=j).value != None: 21 break 22 23#コピーしたい範囲を指定 24row_list = [] 25start_row = 7 26for row in ws.iter_rows(min_row = start_row,max_col= 4): 27 if row[0].row > 7 and row[0].value is None: 28 break 29 value_list = [] 30 for c in row: 31 value_list.append(c.value) 32 row_list.append(value_list) 33 34#貼り付け 35def write_list(ws,ws_move, start_row, start_col,row_list): 36 for y, row in enumerate(row_list): 37 for x, cell in enumerate(row): 38 ws_move.cell(row=start_row + y, 39 column=start_col + x, 40 value=row_list[y][x]) 41 42write_list(ws,ws_move, start_row, start_col,row_list) 43 44wb_move.save(filename = 'C:/Users/copy_製造データシート.xlsm')
回答1件
あなたの回答
tips
プレビュー