こんにちはーー
趣味でPythonを使ってエクセルやCSVの処理を自動化しているロペです。
冬も終わり、暖かくなってきましたね。
今回はExcelのセル値を別のExcelファイルに転記するプログラムを作成したので、記事にしました。
ググりまくってプログラムを作成しているので、誰かのブログが大変役立ちます。
この記事も誰かの役に立つことを願っています。
作成したプログラム
↓のプログラムを作成して転記することができました。
(***の箇所は各自指定が必要です)
import openpyxl as px import os import glob from openpyxl import Workbook path_name ='./**.xlsx' load_path_name = './***.xlsx' for f in glob.glob(path_name): wb = openpyxl.Workbook() ws = wb.active ws.title='Sheet' wb1 = px.load_workbook(load_path_name) ws1 = wb1['Sheet'] max_row = ws1.max_row+1 min_row = ws1.min_row max_col = ws1.max_column+1 min_col = ws1.min_column for i in range(min_row,max_row): for j in range(min_col, max_col): copy = ws1.cell(row=i,colum=j).value ws.cell(row=i,collumn=j,value=copy) wb.save(filename='.****')
概要説明
プログラムの概要を説明します。
glob
glob関数で、指定したパスのフォルダ名を取得します
for f in glob.glob(path_name):
転記先のシートを作成
openpyxで転記先のシートを作成します。
wb = openpyxl.Workbook()
ws = wb.active
ws.title=’Sheet’
.cell().valueとfor文で転記
まず、コピーしたいシートの最小列/行と最大列行番号をmax_row,min_row/max_column,min_columnで取得します。
その後for文で1セルずつコピーして、作成した新規シート(ws)に転記していきます。
max_row = ws1.max_row+1 min_row = ws1.min_row max_col = ws1.max_column+1 min_col = ws1.min_column for i in range(min_row,max_row): for j in range(min_col, max_col): copy = ws1.cell(row=i,colum=j).value ws.cell(row=i,collumn=j,value=copy)
保存
最後に保存して終わりです。
wb.save(filename=’.****’)
以上になります。
ではまた!!
コメント