「初心者のPython入門」では、Pythonの基本的な使い方をご紹介してきました。
「Pythonの実用的な使い方」では、より実践的な使い方をご紹介したいと思います。
今回は、Excelファイルの書き込みをやってみます。
なんらかのデータをCSVに出力した後、そのCSVをEXCELに張り付けて、Excelファイルとして保存するような使い方をしていませんか?(少なくとも、私はそういう使い方をしていました。)
Pythonで、データを直接Excelファイルに出力できるとしたら、手間が省けますね。
ここでご紹介しているものは、Windows10にAnacondaをインストールして、Spyderを使ってWindows10で確認しています。
※初心者のPython入門(Anacondaのインストールだけで開発環境が完成する)
※初心者のPython入門(Spyder=統合開発環境で開発効率を爆上げ)
必要なライブラリ
OpenPyXLを使います。(importは、すべて小文字でopenpyxlと指定します。)
自分のPCにインストールされていないようなら、以下のようにインストールします。
※コマンドプロンプトや、ターミナルから入力します。
pip install openpyxl
インストールされているかどうかは、以下で確認できます。
pip list
Excelファイルに書き込み
まずは以下のようなデータを書き込んでみます。
ソースは、以下のように記載します。(割と簡単でしょ。ありがとうopenpyxl)
# -*- coding: utf-8 -*-
import openpyxl
# データをリスト形式で準備
data1 = ['1月','2月','3月','4月','5月']
data2 = [10,20,30,40,50]
# 新しいブックを作成する
wb = openpyxl.Workbook()
# ブックを作ると'Sheet'という名前のシートが作られるので確認してみる
print('シート名:',wb.get_sheet_names())
# シートのオブジェクトを取り出す
s1 = wb.get_sheet_by_name(wb.get_sheet_names()[0])
# EXCELに書き込み
for i in range(0,len(data)):
# A列
s1.cell(row=i+1,column=1,value=data1[i])
# B列
s1.cell(row=i+1,column=2,value=data2[i])
# 保存
wb.save('test.xlsx')
新しいブックを作ると、Sheetという名前のシートが1つ作られています。
このSheetのオブジェクトを取り出して、A列、B列に、データを書き込んでいます。
この方法を使えば、一度csvに出力した後にEXCELに変換しなくてよくなりますね。
Pythonによるエクセルへの書き込みは、簡単でしたね。
openpyxlは、エクセルの読み込みを含め、もっと機能がありますので、またご紹介します。