忍者ブログ

設備のマニアどっとこむ

設備、電子工作、DIYのブログ!

openpyxlで違うファイルからセルをコピペする

 ラズパイをいじってるとpythonのいろいろなライブラリを使うことになるのですが、ちょっと仕事でも役に立ちそうな事をやってみることにしました。タイトルの通り違うエクセルファイルからセルをコピペしてみます。

まずはインストール
pip3 install openpyxl 
コードのはじめでインポートします。

import openpyxl
まず、1行目A 列に”1”と入れたエクセルファイルを用意します。
シート名はSheetにしておきます。


作成したエクセルファイルを呼び出します。
 同じディレクトリであればファイル名だけでOK。違うディレクトリであればフルパスつけてください
wb = openpyxl.load_workbook('********.xlsx')


シートを選択します。後半の('Sheet') 部分がエクセルファイルのシート名と同じにしてください。
sheet = wb.get_sheet_by_name('Sheet') 

コピペされる側のエクセルシートを作成します。とくにセルの入力は不要です。
シート名はSheet2にしてください。

ファイルを呼び出します。wsとしてwbと区別します。
ws = openpyxl.load_workbook('******.xlsx')

シートを選択します。
sheet2 = ws.get_sheet_by_name('Sheet2')

今回はSheetの1行目のa列から、Sheet2の1行目のa列へコピーしていきます。
(1,1)が場所を指します。

ws2 = ws.worksheets[0]
ws2.cell(1.1).value = sheet.cell(1,1).value

最後はエクセルファイルを保存します。

ws.save('*******.xlsx')


最初に作ったエクセルと同じものができました!!
pythonでやっているので自動化もできそうですね。

ちなみに他にもいろいろできます。

最終行、最終列の数値を出力します。最終行や列に追加するときに便利です。
print(sheet.max_row)
print(sheet.max_column)

行の削除です。今日コピーしたSheet2の6行目~3000行目を消します。
ws2.delete_rows(idx=6,amount=3000)

マクロを勉強するより簡単な気がしてきました。便利な機能を発見したらまた紹介したいと思います!!






拍手[0回]

PR

コメント

翻訳(Translate)

AD

シェアしてね

プロフィール

HN:
アルティメット雅史
性別:
男性
自己紹介:
製油所、データセンター、化学工場を渡り歩いた設備のマニア
最近はarduino,Raspberry pi等の電子工作にハマる。
取得資格は電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトほか

カウンター