忍者ブログ

設備のマニアどっとこむ

IoT開発、設備・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)

プロフィール

HN:
佐々木 雅史
性別:
男性
自己紹介:
2021年 ラズパイ、M5stackを用いたIoT開発を専門で受注するアルティメンテを設立。代表を務める。
・2020年ラズパイコンテスト優良賞受賞
・設備系資格多数(電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトなど)

AD

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30