【Python】Excelを操作してみる①
こんばんは!
つい先日、毎日のようにこもっていたTSUTAYA×スタバのブックカフェで、新型コロナウイルスの陽性者が出てしまい、プログラミングの書籍を読めなくなってしまって絶望を感じているKomaです。
Kindle Unlimitedで頑張っています笑
今日は、PythonでExcelを操作してみたいと思います。
結構ボリュームがあるので、何回かに分けて書いていきたいと思います。
Excelの種類
Excelファイルのことをブックと呼んだりしますが、そのブックには「Excelブック」、「Excelマクロ有効ブック」、「Excel 97~2003ブック」などの種類があります。
そして、それぞれでファイルの形式が異なり、違う拡張子で保存されていますが、大抵は「Excelブック」(.xlsx)のことを指しています。
・Excelブック(.xlsx):現行バージョンのExcelの既定ファイル形式
・Excelマクロ有効ブック(.xlsm):現行バージョンExcelのマクロ有効のファイル形式
・Excel97~2003ブック(.xls):Excel97~2003のファイル形式
PythonでExcelを操作する際は、openpyxlモジュールを使用するのですが、openpyxlモジュールでは、拡張子が「.xlsx」「.xlsm」のブックの読み書きをすることができます。
そもそも、openpyxl自体がExcel2010以降のファイルを対象に開発されています。
ブックを読み込んで、シート名を一覧取得する
# openpyxlモジュールの読み込み
import openpyxl
# ブックの読み込み
wb = openpyxl.load_workbook("ブックのファイル名")
# シート名の一覧を取得
print(wb.sheetnames)
シート名は、ブック名.sheetnames です取得することができます。
ブックの上書き保存・別名で保存する
wb.save("保存するブックのファイル名")
ポイントは拡張子まで記載することです。
開いた時と同じファイル名を入れると「上書き保存」され、
開いた時と異なるファイル名を入れると「別名で保存」されます。
■フォルダが存在しない時に、フォルダを作成してブックを保存する
import pathlib #デフォルトで入っているモジュール
pathlib.Path("フォルダ名").mkdir(exsit_ok=True)
exist_ok=True :同名フォルダが存在しない時だけ、フォルダを作成する
または、こんな書き方もできます。
from pathlib import Path
Path("フォルダ名")mkdir(Exist_ok=True)
毎回、pathlib.Pathと書く必要がなくなり、Pathだけで指定できますね。
import openpyxl
from pathlib import Path
wb = openpyxl.load_workbook("売上データ.xlsx")
# 保存先のフォルダを作成
Path("Copy").mkdir(exist_ok=True)
# 保存先を指定
wb.save("Copy/売り上げデータ_コピー.xlsx")
こんな感じでフォルダを作成しつつも(ない場合)、そのフォルダ内にブックを保存することができます。
次回は、実際にせるの値を読み書きしていきたいと思います。
最後まで読んでいただき、ありがとうございました!