Python3 と openpyxl のライブラリを使って、Excelの列をコピーして別のエクセルへ貼り付けています。
下記の方法で行うと元のエクセルのデータが列が増えた分
新規のエクセルへ貼り付けます。
ただ結果のようにすべてのデータがコピペされます。
実現内容のようにフラグだけの列をコピして別のエクセルに貼り付けをどのようにすればよろしいでしょうか。
①Excelデータ
No | 駅 | 駅2 | フラグ |
---|---|---|---|
1 | 東京 | 品川 | 処理済み |
2 | 原宿 | 原宿 | 処理済み |
3 | 日暮里 | 秋葉原 | |
4 | 東京 | 原宿 | |
5 | 池袋 | @@@ |
②Excelデータ
No | 駅 | 駅2 |
---|---|---|
1 | 東京 | 品川 |
2 | 原宿 | 処理済み |
3 | 日暮里 | 秋葉原 |
4 | 東京 | 原宿 |
5 | @@@ |
**実現内容
****>①のEXCELフラグの列をコピーして②のEXCELへ貼り付ける
No | 駅 | 駅2 | フラグ |
---|---|---|---|
1 | 東京 | 品川 | 処理済み |
2 | 原宿 | 処理済み | |
3 | 日暮里 | 秋葉原 | |
4 | 東京 | 原宿 | |
5 | @@@ |
(現在の結果)
>①のEXCELフラグの列をコピーして②のEXCELへ貼り付けることできますが、
駅の原宿や池袋の列も張り付けられています。
エクセル1から全ての行が貼り付けらています。
エクセルのフラグだけコピーしたいです。
No | 駅 | 駅2 | フラグ |
---|---|---|---|
1 | 東京 | 品川 | 処理済み |
2 | 原宿 | 原宿 | 処理済み |
3 | 日暮里 | 秋葉原 | |
4 | 東京 | 原宿 | |
5 | 池袋 | @@@ |
コード
import openpyxl from datetime import datetime as dt, date, timedelta # 該当ファイルのあるディレクトリに異動 # os.chdir('C:\Users\ユーザー名\Documents\Qiita用サンプル') file_time= dt.now().strftime("%Y%m%d") filename_xlsx="EXCEL1.xlsx" file_completion = "EXCEL2.xlsx" #EXCEL1.xlsxデータのワークブックとワークシートを読み込み wb1 = openpyxl.load_workbook(filename_xlsx) ws1 = wb1['Sheet1'] #EXCEL2データのワークブックとワークシートの読み込み wb2 = openpyxl.load_workbook(file_completion) ws2 = wb2['Sheet1'] def copy_paste1(): for i in range(2, ws1.max_row + 1): #フラグのE列をコピー flag = ws1.cell(row = i, column = 5).value ws1.cell(row = i, column = 4, value = flag) i += 1 wb1.save(filename = file_completion) copy_paste1()
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー