データ入力やデータ分析をするために、エクセルを普段から使っている方も多いのではないでしょうか?
エクセルをより効率的な操作やデータ分析を実現するためには、Pythonとの組み合わせがおすすめです。
しかし、Pythonを始めるために環境構築でつまずいた方もいるかと思います。
この記事では、Google Colaboratoryを使うことで、簡単にエクセル操作する方法について詳しく解説していきます。
Google Colaboratoryを使えば、Pythonでエクセルを操作するために、パソコンにPythonをインストールする必要はありません。また、Colabは無料で利用することができます。
PythonでColabを使ってエクセルを操作する方法を学びたい方は、ぜひこのブログを参考にしてください。
Googleスプレッドシートを操作する場合
ColabとPythonを使って操作することが可能ですが、使用するライブラリやコードもエクセル操作方法とは少し違います。
基本の考え方は同じなので、下記の記事を参考に、よく使用する方をトライしてみてください!
Google Colaboratoryとは?
Colabは、ブラウザで Pythonを実行できるクラウドベースのプログラミング環境です。無料かつ手軽に利用できる環境として、機械学習やデータ分析の分野で人気です。
Colabの特徴
- インターネット環境があれば、どこからでも利用できる
- 有名なライブラリが既にインストールされている
- 強力な GPUが使えるため、機械学習モデルのトレーニングに利用できる
- コードを簡単に共有・共同編集できる
Google Colaboratoryでエクセルを操作するメリット
エクセルは、データ入力やデータ分析において便利で使いやすいツールですが、PythonとColabを組み合わせることで相乗効果が生まれます。
Colabでエクセルを操作するメリット
- エクセルを操作するために、面倒な環境構築が不要
- クラウドで、エクセルデータを保管できる
エクセルを操作するために、面倒な環境構築が不要
Pythonでエクセルを操作・自動化するためには、自身のパソコンにPythonをインストールしたり、環境構築の準備、ライブラリのインストールなどが必要です。初めてPythonを使う方には、手間がかかりハードルは高めです。
しかし、Colabを使うことで、Googleアカウントとインターネット環境があれば、簡単にPythonでエクセルの操作が出来るようになります!
クラウドで、エクセルデータを保管できる
クラウドツールであるGoogleドライブ内に、エクセルデータを保管します。
そうすることで、Googleドライブ内のエクセルをPythonを使ってColabで自由に操作出来るようになります。
Colabで集計したデータをエクセルに更新するといった使い方も容易に出来ます。
Pythonを使ったエクセル操作の活用方法としては、
例えば、大量のデータの集計やフィルタリング、複数のエクセルファイルの統合、自動化されたレポートの作成など、様々な業務に応用することができます。
エクセルは広く使われているツールなので、その操作に慣れておくことで、ビジネスやデータ分析のスキルを向上させることができます。
会社での業務効率化や意思決定のサポートができるようになります。
Colabを使ったPython・エクセルの相性は抜群です!
Google Colaboratoryで、エクセルファイルを読み込む方法
ColabでPythonを使って、エクセルを操作するために、エクセルファイルを読み込む方法を紹介します。
大きく分けて2種類の方法があります
- Googleドライブから、エクセルファイルを読み込む
- エクセルファイルを、直接アップロードする
それぞれ詳しく説明していきます。
Googleドライブから、エクセルファイルを読み込む
# openpyxlライブラリをインポート
import openpyxl
# Google ドライブ内のファイルパス名
file_path = "/content/drive/MyDrive/ファイル名.xlsx"
# エクセルの読み込み
wb = openpyxl.load_workbook(file_path)
一度マウントが完了すれば、STEP.3までは二回目以降は省略出来ます。
Colabのセッションが切れたあとも、エクセルファイルをアップロードしなくても良いので、Googleドライブ経由でエクセルファイルを操作する方法がおすすめです!
エクセルファイルを、Colabに直接アップロードする
# openpyxlライブラリをインポート
import openpyxl
# 直接ファイルをアップした場合パス名
file_path = "/content/ファイル名.xlsx"
# エクセルの読み込み
wb = openpyxl.load_workbook(file_path)
エクセルファイルの右にある、三点マークをクリックして「パスをコピー」を押すと、パスをコピーできるので便利です。
Colabの90分経過等でセッションが切れた場合に、ファイルが削除されてしまいます。直接アップロードする方法は、一時的にデータ取得する場合に使うのがおすすめです。
Pythonを使ったエクセル操作ガイド
エクセルファイルの読み込みが出来たところで、Pythonでエクセルを操作していきましょう。
エクセルファイルの新規作成
# openpyxlライブラリをインポート(一度読み込めば二回目以降は不要)
import openpyxl
# エクセルファイルを新規作成
wb = openpyxl.Workbook()
# エクセルファイルのパスと名前を設定
file_path = "/content/drive/MyDrive/新しいエクセル.xlsx"
# エクセルを保存
wb.save(file_path)
# エクセルファイルを閉じる
wb.close()
Colabでエクセルファイルを新規作成したあとは、指定のフォルダに指定のエクセルファイルの名前を決めて保存します。
エクセルファイルの読み込み
# openpyxlライブラリをインポート(一度読み込めば二回目以降は不要)
import openpyxl
# エクセルファイルのパスと名前
file_path = "/content/drive/MyDrive/新しいエクセル.xlsx"
# ファイルの読み込み。ワークシート関数をdata_only=Trueでなくせる
wb = openpyxl.load_workbook(file_path, data_only=True)
# エクセルを保存
wb.save(file_path)
# エクセルファイルを閉じる
wb.close()
openpyxlは保存することで、操作を反映させることが出来ます。
エクセルファイルを更新した後は必ず、エクセルを保存するコードと、エクセルファイルを閉じるコードを最後に記入して実行するようにしてください。
シートの操作
エクセルシートを扱う方法を紹介していきます。
エクセルファイルを読み込み、「wb」という変数に代入されてる状態です。
シート全てを確認する
# シートの確認。リストで取得
wb.sheetnames
シートを指定して取得する
# シートの取得(シート名を直接入力)
ws = wb['シート名']
# シートの取得(インデックス番号を使う)
ws = wb.worksheets[0]
シートの取得は、シート名を直接入力する方法と、インデック番号で指定する方法があります。
インデックス番号とは、プログラミングで使用する番号のことです。普通は数を数える際「1」から始まりますが、プログラミングの世界では「0」から始まります。
シート名の変更方法
# シート名の取得・変更
ws.title = "新しいシート名"
シートの名前は、ws.titleで取得が出来ます。値を代入すると、新しいシート名に変更が出来ます。
シートの追加・コピー・削除
# シートの追加。インデックスで場所指定
wb.create_sheet(title="シート名", index=0)
# シートのコピー。シート名をコピーして最後に追加
wb.copy_workssheet(wb["シート名"])
# シート削除
wb.remove(wb["シート名"])
# 末尾のシート削除
wb.remove(wb.worksheets[-1])
# エクセルを保存
wb.save(file_path)
# エクセルファイルを閉じる
wb.close()
エクセルを保存しないと変更が反映されないので、忘れないように注意です!
セルの操作
エクセルの表の1マスのことを「セル」と呼びます。セルに値を入力したり、値を取得するコードを解説します。
セルの値(単一)を取得する
# ❶セルの値を取得(セル番地で取得する)
ws["A1"].value
# ❷セルの値を取得(行・列で取得する)
ws.cell(row=1, column=1).value
# 省略バージョン
ws.cell(1, 1).value
# --------------------------
# セルのアドレス確認
ws.cell(1, 1).coordinate
# >>>結果 A1
# 列アルファベット取得
ws.cell(1, 1).column_letter
# >>>結果 A
セルの値(単一)を入力する
# ❶セルの値を入力(セル番地で指定)
ws["A1"].value = "値"
# ❷セルの値を入力(行・列で指定)
ws.cell(row=1, column=1, value="値")
# 省略バージョン
ws.cell(1, 1, "値")
# 数式の書き込み
ws["A1"].value = "=SUM(A1:C3)"
値の取得・入力する方法は2種類です。
2つ目の、行列の番号で指定する方法は、for文などで繰り返す際に便利なのでおすすめです!
セルの値(複数)の取得
# セル複数の取得。1行ごとのタプルになる
ws["A1:C3"]
# 全体の値を取得。タプルをfor文で取り出す
for v in ws.values:
print(v)
# 複数範囲から一つ一つセルの値を取り出す。タプルをfor文で取り出す
for row in ws["A1:C5"]:
for cell in row:
print(cell.value)
# 複数行をiter_rowsで取得。タプルをfor文で取り出す
for rows in ws1.iter_rows():
for row in rows:
print(row)
openpyxlで複数行、複数の値を取り出すとタプルになっています。
タプルをfor文で一つずつ取り出すことで、値を取り出せます。
セル(複数)の値の入力
# 行ごとの値を書き込む
ws.append([1, 2, 3, 4, 5])
ws.append(["値", "値"])
# リストから、セルに値(複数行)を書き込む。
values = [["A",1,2,3],
["B",4,5,6],
["C",7,8,9]]
for v in values:
ws.append(v)
既に値が入力されている場合は、その下の行から値が記入されます。
行・列の扱い
# 数式書き込み
ws["A1"].value = "=SUM(A1:C3)"
# セルのアドレス確認
ws.cell(1, 1).coordinate
# >>>結果 A1
# 列アルファベット取得
ws.cell(1, 1).column_letter
# >>>結果 A
書式設定の操作
エクセルの書式設定の変更を、Pythonで操作が出来ます。例えば、文字の色を変更したり、文字サイズなどの変更が出来るようになります。
# openpyxl内からfontをインポート
from openpyxl.styles import Font
# 書式設定。色を変更、太字、サイズ大きく、書体はメイリオ
ws["A1"].font = Font(color="FF0000", bold=True, size=15, name="メイリオ")
# フォントのクリア
ws["A1"].font = Font(None)
# シートのタブカラー変更
ws.sheet_properties.tabColor = "000000"
# A列の幅を調整
ws.column_dimensions['A'].width = 20
エクセル操作する時にできると便利な書式設定の方法です。openpyxlライブラリからフォントというメソッドを読み込んで使用します。
普段エクセルで使っている書式設定を、Pythonから操作が出来るようになります!
まとめと活用方法
Pythonを使ってGoogle Colaboratory上でエクセル操作を行う方法について詳しく解説してきました。エクセルはデータ処理や分析において重要なツールであり、Colabを利用することでさまざまなメリットがあります。
Colabでエクセルを操作するメリット
- エクセルを操作するために、面倒な環境構築が不要
- クラウドで、エクセルデータを保管できる
Pythonの豊富なライブラリやツールを活用することで、エクセル操作の幅も広がります。openpyxlライブラリを使えば、エクセルファイルの読み書きやセルの操作が簡単に行えます。さらに、データ処理や可視化のためのライブラリと組み合わせることで、高度な分析やグラフ作成も可能になります。
Colabから、エクセルファイルを読み込む方法
- Googleドライブから、エクセルファイルを読み込む
- エクセルファイルを、Colabに直接アップロードする
また、エクセル操作だけでなく、PythonとColabの組み合わせにより、他のデータソースとの連携や機械学習モデルの開発、Webスクレイピングなど、さまざまなデータ関連のタスクを実行することも可能です。
Pythonの学習やスキルアップとしてもおすすめです!是非エクセル操作に挑戦してみて下さい!