Python

openpyxlによるファイル操作〜Excel基礎編〜

Python

今回の記事では、openpyxlというライブラリを使って、Excelを操作する基礎部分を解説します。

この記事では、こんな悩みを解決します。

悩んでいる人
悩んでいる人
  • Excel業務効率化したくてPythonでどうやるか知りたい
  • とても面倒な繰り返し作業がある・・・

WordとExcel業務効率化するための環境構築

WordとExcel業務効率化するためにPythonを使用します。

Pythonを使用できる環境にするために以下を実施ください。

それでは早速、本題に入りたいと思います。

ExcelファイルをPythonで扱う方法

Pythonでエクセルファイルを扱う方法

  • openpyxlというライブラリを使用する

openpyxlのインストール方法

以下のコマンドを

  • Mac:ターミナル
  • Win:コマンドプロンプト

にて入力しEnterを押してください。

pip install openpyxl

openpyxlのインポート

openpyxlを使用するためにはインポートする必要があります。

import openpyxl

これでインポート可能です。

pythonのコードの実行方法がわからない方は、以下の記事を参考にしてみてください。

Excelファイルの新規作成と保存

Excelファイルの新規作成

  • openpyxl.Workbook()
  • wb.save(“hogehoge.xlsx”)

hogehogeの部分に任意のファイル名を指定可能です。

早速以下のコードを実行してみてください。

import openpyxl
wb = openpyxl.Workbook()
wb.save("test.xlsx")

カレントディレクトリにtest.xlsxが作成されると思います。

Excelファイルを読み込む

Excelファイルを読み込む方法

  • openpyxl.load_workbook()

以下のコードで読み込むことが可能です。

wb = openpyxl.load_workbook("test.xlsx")

()の中に読み込みたいファイル名を記述します。

今回は、作成したtest.xlsxを読み込みます。

Excelファイルのシート名の確認

  • wb.sheetnames

Jupyter Labの場合には以下で表示可能です。

wb.sheetnames

Sheetと表示されました。

これはエクセルファイルのシート名になります。

Excelファイルのシート名の変更

  • ws = wb.worksheets[0]
  • ws.title = “hogehoge”

さてhogehogeにシート名を変更してみましょう。

ws = wb.worksheets[0]

このコードは、wsという変数にwbのwroksheetリストの0番目を格納するという意味です。

ws.title = "hogehoge"

このコードでシート名をhogehogeに変更します。

一連の流れでhogehogeに変更されているか確認してみましょう。

ws = wb.worksheets[0]
ws.title = "hogehoge"
wb.sheetnames

このように表示されていれば、hogehogeに変更されました。

Excelファイルのシートの追加

  • wb.create_sheet(title=””)

title=”Sheet2″を作成してみましょう。

wb.create_sheet(title="Sheet2")

このように表示されればOKです。

Excelファイルのシートのコピー

  • wb.copy_worksheet(wb[“コピーしたいシート”])
wb.copy_worksheet(wb["Sheet2"])
wb.sheetnames

Sheet2 Copyというシートが作成されましたね。

Excelファイルのシートの削除

  • wb.remove(wb[“削除したいシート”])
wb.remove(wb['hogehoge'])
wb.sheetnames

hogehogeが削除されました。

Excelファイルのセルの指定

アドレス、行列番号の2通りで指定できます。

Excelファイルのセルの指定方法1

# 「A1」のセルの読み込み
c1 = ws["A1"]
c1

<Cell ‘hogehoge’.A1>

Excelファイルのセルの指定方法2

# 「A1」を行列の番号で取得(注意:1から始まる)
c1 = ws.cell(row=1, column=1)

# キーワード(row=, column=)は省略可
c1 = ws.cell(1, 1)

Excelファイルの複数のセル:範囲指定

# 「A1:C3」の範囲
rng1 = ws["A1:C3"]

A1:C3までを選択することができます。

Excelファイルの複数のセル:行指定

# シートの1行目(注意:1から始まる)
row1 = ws[1]

これで1行目を指定できます。

0から始まらないことに注意しましょう。

Excelファイルのセルのアドレスの確認

# アドレス
c1.coordinate

変数c1に格納されているアドレスの取得方法です。

’A1’

などと出力されます。

# 行番号
c1.row

変数c1に格納されている行数を返します。

# 列番号
c1.column

変数c1に格納されている列数を返します。

# 列アルファベット
c1.column_letter

変数c1に格納されている列のアルファベットを返します。

例えばA1の場合はAと返します。

Excelファイルのセルの値の読み書き

# セルの値の読み取り
val1 = c1.value
val1
# セルの値の書き込み
c1.value = 100
c1.value
# セルの数式の書き込み
c_sum = ws["C6"]
c_sum.value = "=SUM(C1:C5)"

エクセルファイルの基本的な操作方法については以上です。

最後までお読みいただきありがとうございました。

コメント

  1. […] Python無料入門講座①|openpyxlによる〜Excel基礎編〜今回の記事では、openpyxlというライブラリを使って、Excelを操作する基礎部分を解説します。tsukimitech.com2021.03.27 […]

タイトルとURLをコピーしました