前提 実現したいこと
PythonにてCSVファイルを取り込み、1レコードづつエクセルの所定のセルに貼り付け、エクセルのファイルとして保存したいです。
CSVファイルのデータ
項目1,項目2,項目3,項目4,項目5
aaa1,aaa2,aaa3,aaa4,aaa5
bbb1,bbb2,bbb3,bbb4,bbb5
ccc1,ccc2,ccc3,ccc4,ccc5
エクセルの所定のシートの2行目にCSVデータの1レコード目をコピーし、エクセルファイルとして保存
次にエクセルの所定のシートの2行目にCSVデータの2レコード目をコピーし、エクセルファイルとして保存(以下レコード数分繰返し)
aaa.xlsx
bbb.xlsx
ccc.xlsx
最終的に上記の様に3つ(レコード数分)のエクセルファイルを作成したいと思います。
該当のソースコード
import csv import openpyxl xlsx_filename="test.xlsx" csv_filename="test.csv" with open(csv_filename,newline="") as csvf: data=csv.reader(csvf) wb=openpyxl.load_workbook(xlsx_filename) ws=wb["Sheet2"] r=1 for line in data: c=1 for v in line: ws.cell(row=r,column=c).value=v c += 1 r += 1 wb.save(filename="%03.f"%(r)+".xlsx") wb.close()
試したこと
openpyxlで試してみましたが、CSVデータのリスト形式ではエクセルへの行のコピーがうまくいきませんでした。列のコピーは調べるとでてくるのですが、行へのコピー方法が見つかりませんでした。
発生している問題
上記コードだとレコード数分のエクセルファイルはできるのですが、1レコードづつのエクセルへの書き込みができないです。
回答1件
あなたの回答
tips
プレビュー