プログラミング

PythonでExcelに書き込み(Pythonの実用的な使い方)

2020年11月1日

「初心者の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ファイルに書き込み

まずは以下のようなデータを書き込んでみます。

出力された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は、エクセルの読み込みを含め、もっと機能がありますので、またご紹介します。

PythonでExcelを読み込み(Pythonの実用的な使い方)

-プログラミング
-, ,

© 2020 小さなことをやってみるブログ