ラズパイをいじってると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)
マクロを勉強するより簡単な気がしてきました。便利な機能を発見したらまた紹介したいと思います!!