前提・実現したいこと
pythonを勉強中です。プログラム自体はじめてなのでいろいろ調べながら勉強していますが,下記について調べ方が悪いのか,原因がわからなかったため質問させてください.
横2列(X軸,Y軸の値),縦に1040行(xyの座標の個数)があるExcelデータがあるとします.
2行4列(合計8セル,4点の座標)ごとにデータをコピーし,それを同じシートの4列目以降に1行になるように複製して,ペーストする処理を元データの最終行まで行いたいと考えています.2行4列のデータを定数を用いて,一行に並べる処理はできたのですが,それを最終行まで繰り返させる処理がどうしても実行されません.どうすればできるのか,アドバイス頂きたいと思います.よろしくお願いいたします.
発生している問題・エラーメッセージ
エラーメッセージは特に出てきませんがコピーできていない状況です.
該当のソースコード
python
1import os 2os.chdir('C:/Users/XXX/Python/0407') 3 4import openpyxl as px 5wb = px.load_workbook('C:/Users/XXX/Python/0407/DJI_0001_01.xlsx') 6ws = wb['Sheet1'] 7 8def act(A): #1行分の列部分を取得する関数(一つ目) 9 copyx1 = ws.cell(row = A, column =1).value #x1 10 copyy1 = ws.cell(row = A, column =2).value #y1 11 12 for j in range(0,A):#抜き取った部分を複製する 後 13 ws.cell(row = j,column = 4).value = copyx1 14 ws.cell(row = j,column = 5).value = copyy1 15 16 max=int(ws.max_row) #最終行数の算出(1040行) 17 for A in range(1,max,4): #一行目から4つ飛ばしで最終行まで 18 act(A) 19 20 21def act(B): #1行分の列部分を取得する関数 22 copyx2 = ws.cell(row = B, column =1).value #x2 23 copyy2 = ws.cell(row = B, column =2).value #y2 24 25 for j in range(0,B):#抜き取った部分を複製する 後 26 ws.cell(row = j,column = 6).value = copyx2 27 ws.cell(row = j,column = 7).value = copyy2 28 29 max=int(ws.max_row) #最終行数の算出(1040行) 30 for B in range(2,max,4): #2行目から最終行まで4行飛ばしながら実行 31 act(B) 32 33 34def act(C): #3つ目 35 copyx3 = ws.cell(row = C, column =1).value #x3 36 copyy3 = ws.cell(row = C, column =2).value #y3 37 38 for j in range(0,C):#抜き取った部分を複製する 後 39 ws.cell(row = j,column = 8).value= copyx3 40 ws.cell(row = j,column = 9).value = copyy3 41 42 max=int(ws.max_row) #最終行数の算出(1040行) 43 for C in range(3,max,4): #3行目から最終行まで4行飛ばしながら実行 44 act(C) 45 46 47def act(D): #4つ目 48 copyx4 = ws.cell(row = D, column =1).value #x4 49 copyy4 = ws.cell(row = D, column =2).value #y4 50 51 for j in range(0,D):#抜き取った部分を複製する 後 52 ws.cell(row = j,column = 10).value= copyx4 53 ws.cell(row = j,column = 11).value = copyy4 54 55 max=int(ws.max_row) #最終行数の算出(1040行) 56 for z in range(4,max,4): #4行目から最終行まで4行飛ばしながら実行 57 act(D) 58 59wb.save(filename = 'New.xlsx') 60
補足情報(FW/ツールのバージョンなど)
Python 3.7.9
回答2件
あなたの回答
tips
プレビュー