【Python】エクセルファイルを作成する方法

この記事では、Pythonのライブラリ openpyxlpandas を使って、エクセルファイルを簡単に作成・カスタマイズする方法をわかりやすく解説します。

基本的な使い方から、セルの書式設定やグラフの作成、画像の挿入まで、初心者でもすぐに実践できる具体的な例を交えて説明します。

さらに、よくあるエラーとその対処法も紹介するので、安心して学習を進めることができます。

目次から探す

必要なライブラリのインストール

Pythonでエクセルファイルを作成するためには、いくつかのライブラリをインストールする必要があります。

ここでは、特に便利な openpyxlpandas のインストール方法について説明します。

openpyxlのインストール

openpyxl は、Pythonでエクセルファイル(.xlsx形式)を操作するためのライブラリです。

セルへのデータ入力や書式設定、グラフの作成など、エクセルの基本的な操作を行うことができます。

インストールは非常に簡単で、以下のコマンドをターミナルまたはコマンドプロンプトで実行するだけです。

pip install openpyxl

このコマンドを実行すると、必要なファイルが自動的にダウンロードされ、インストールが完了します。

インストールが成功したかどうかを確認するためには、以下のようにPythonのインタプリタでimport文を実行してみてください。

import openpyxl

エラーが出なければ、インストールは成功しています。

pandasのインストール

pandas は、データ解析やデータ操作を効率的に行うためのライブラリです。

エクセルファイルの読み書きも簡単に行うことができ、特にデータフレーム(DataFrame)を使った操作が強力です。

pandasのインストールも非常に簡単で、以下のコマンドをターミナルまたはコマンドプロンプトで実行します。

pip install pandas

このコマンドを実行すると、pandasとその依存関係が自動的にダウンロードされ、インストールが完了します。

インストールが成功したかどうかを確認するためには、以下のようにPythonのインタプリタでimport文を実行してみてください。

import pandas as pd

エラーが出なければ、インストールは成功しています。

これで、エクセルファイルを作成するための準備が整いました。

次のセクションでは、具体的に openpyxl を使ってエクセルファイルを作成する方法について詳しく説明します。

openpyxlを使ったエクセルファイルの作成

openpyxlの基本的な使い方

ワークブックの作成

まずは、openpyxlを使って新しいエクセルファイル(ワークブック)を作成する方法を見ていきましょう。

以下のコードは、新しいワークブックを作成する基本的な方法です。

from openpyxl import Workbook
# 新しいワークブックを作成
wb = Workbook()

このコードを実行すると、wbという変数に新しいワークブックが作成されます。

シートの追加と選択

次に、ワークブックにシートを追加し、特定のシートを選択する方法を見ていきます。

openpyxlでは、デフォルトで1つのシートが作成されますが、追加のシートを作成することも可能です。

# デフォルトのシートを取得
ws = wb.active
# 新しいシートを追加
ws1 = wb.create_sheet("Sheet1")
ws2 = wb.create_sheet("Sheet2")
# 特定のシートを選択
ws = wb["Sheet1"]

このコードでは、デフォルトのシートを取得し、新しいシートを2つ追加しています。

また、特定のシートを選択する方法も示しています。

セルへのデータ入力

次に、セルにデータを入力する方法を見ていきます。

セルにデータを入力するには、セルの座標を指定して値を代入します。

# セルにデータを入力
ws['A1'] = "Hello"
ws['B1'] = "World"
ws['A2'] = 42
ws['B2'] = 3.14

このコードでは、セルA1にHello、セルB1にWorld、セルA2に42、セルB2に3.14を入力しています。

ファイルの保存

最後に、作成したワークブックをファイルとして保存する方法を見ていきます。

以下のコードを使って、ワークブックを指定したファイル名で保存します。

# ワークブックをファイルとして保存
wb.save("example.xlsx")

このコードを実行すると、example.xlsxという名前のエクセルファイルが作成されます。

openpyxlを使ったエクセルファイルのカスタマイズ

セルの書式設定

セルの書式設定を行うことで、エクセルファイルをより見やすくすることができます。

以下のコードは、セルのフォントや色を設定する方法を示しています。

from openpyxl.styles import Font, PatternFill
# フォントの設定
font = Font(name='Calibri', size=14, bold=True, italic=True)
ws['A1'].font = font
# 背景色の設定
fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
ws['A1'].fill = fill

このコードでは、セルA1のフォントをCalibri、サイズ14、太字、斜体に設定し、背景色を黄色に設定しています。

セルの結合

複数のセルを結合することで、見出しやタイトルを作成することができます。

以下のコードは、セルを結合する方法を示しています。

# セルの結合
ws.merge_cells('A1:B1')

このコードでは、セルA1とB1を結合しています。

グラフの作成

openpyxlを使ってエクセルファイルにグラフを追加することも可能です。

以下のコードは、簡単な棒グラフを作成する方法を示しています。

from openpyxl.chart import BarChart, Reference
# データの入力
ws['A1'] = "Category"
ws['B1'] = "Value"
ws['A2'] = "A"
ws['A3'] = "B"
ws['A4'] = "C"
ws['B2'] = 10
ws['B3'] = 20
ws['B4'] = 30
# グラフの作成
chart = BarChart()
data = Reference(ws, min_col=2, min_row=1, max_col=2, max_row=4)
categories = Reference(ws, min_col=1, min_row=2, max_row=4)
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)
chart.title = "Sample Bar Chart"
# グラフをシートに追加
ws.add_chart(chart, "E5")

このコードでは、データを入力し、棒グラフを作成してシートに追加しています。

画像の挿入

openpyxlを使ってエクセルファイルに画像を挿入することも可能です。

以下のコードは、画像を挿入する方法を示しています。

from openpyxl.drawing.image import Image
# 画像の挿入
img = Image('path_to_image.png')
ws.add_image(img, 'C1')

このコードでは、指定したパスの画像をセルC1に挿入しています。

以上が、openpyxlを使ったエクセルファイルの作成とカスタマイズの基本的な方法です。

これらの方法を組み合わせることで、さまざまなエクセルファイルを作成することができます。

pandasを使ったエクセルファイルの作成

Pythonのデータ解析ライブラリであるpandasを使うと、エクセルファイルの作成が非常に簡単になります。

pandasはデータフレーム(DataFrame)というデータ構造を提供しており、これをエクセルファイルに変換することができます。

pandasの基本的な使い方

DataFrameの作成

まずは、pandasのDataFrameを作成する方法を見てみましょう。

DataFrameは、行と列からなる2次元のデータ構造で、エクセルのシートに似ています。

import pandas as pd
# サンプルデータを辞書型で作成
data = {
    '名前': ['田中', '鈴木', '佐藤'],
    '年齢': [28, 34, 29],
    '職業': ['エンジニア', 'デザイナー', 'マネージャー']
}
# DataFrameの作成
df = pd.DataFrame(data)
# DataFrameの表示
print(df)

このコードを実行すると、以下のようなDataFrameが表示されます。

   名前  年齢      職業
0  田中  28   エンジニア
1  鈴木  34   デザイナー
2  佐藤  29  マネージャー

DataFrameからエクセルファイルの生成

次に、このDataFrameをエクセルファイルとして保存する方法を見てみましょう。

pandasのto_excelメソッドを使うと、簡単にエクセルファイルを生成できます。

# DataFrameをエクセルファイルとして保存
df.to_excel('sample.xlsx', index=False)

このコードを実行すると、sample.xlsxという名前のエクセルファイルが作成されます。

index=Falseとすることで、行番号がエクセルファイルに含まれないようにしています。

pandasを使ったエクセルファイルのカスタマイズ

pandasを使うと、エクセルファイルのカスタマイズも簡単に行えます。

ここでは、複数のシートの作成、書式設定の適用、グラフの作成について説明します。

複数のシートの作成

pandasのExcelWriterを使うと、複数のシートを持つエクセルファイルを作成できます。

# 複数のDataFrameを作成
df1 = pd.DataFrame({
    '名前': ['田中', '鈴木', '佐藤'],
    '年齢': [28, 34, 29]
})
df2 = pd.DataFrame({
    '職業': ['エンジニア', 'デザイナー', 'マネージャー'],
    '年収': [500, 600, 700]
})
# ExcelWriterを使ってエクセルファイルを作成
with pd.ExcelWriter('multi_sheet.xlsx') as writer:
    df1.to_excel(writer, sheet_name='シート1', index=False)
    df2.to_excel(writer, sheet_name='シート2', index=False)

このコードを実行すると、multi_sheet.xlsxという名前のエクセルファイルが作成され、シート1シート2という2つのシートが含まれます。

書式設定の適用

pandasとopenpyxlを組み合わせることで、エクセルファイルに書式設定を適用することができます。

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font
# DataFrameを作成
df = pd.DataFrame({
    '名前': ['田中', '鈴木', '佐藤'],
    '年齢': [28, 34, 29]
})
# DataFrameをエクセルファイルとして保存
df.to_excel('formatted.xlsx', index=False)
# エクセルファイルを読み込み
wb = load_workbook('formatted.xlsx')
ws = wb.active
# ヘッダー行に太字を適用
for cell in ws[1]:
    cell.font = Font(bold=True)
# エクセルファイルを保存
wb.save('formatted.xlsx')

このコードを実行すると、formatted.xlsxという名前のエクセルファイルが作成され、ヘッダー行が太字になります。

グラフの作成

pandasとopenpyxlを組み合わせることで、エクセルファイルにグラフを追加することもできます。

import pandas as pd
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference
# DataFrameを作成
df = pd.DataFrame({
    '名前': ['田中', '鈴木', '佐藤'],
    '年齢': [28, 34, 29]
})
# DataFrameをエクセルファイルとして保存
df.to_excel('chart.xlsx', index=False)
# エクセルファイルを読み込み
wb = load_workbook('chart.xlsx')
ws = wb.active
# データ範囲を指定
data = Reference(ws, min_col=2, min_row=1, max_col=2, max_row=4)
categories = Reference(ws, min_col=1, min_row=2, max_row=4)
# バーチャートを作成
chart = BarChart()
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)
chart.title = "年齢分布"
chart.x_axis.title = "名前"
chart.y_axis.title = "年齢"
# シートにチャートを追加
ws.add_chart(chart, "E5")
# エクセルファイルを保存
wb.save('chart.xlsx')

このコードを実行すると、chart.xlsxという名前のエクセルファイルが作成され、名前と年齢のバーチャートが追加されます。

以上が、pandasを使ったエクセルファイルの作成方法とカスタマイズ方法です。

pandasを使うことで、データの操作やエクセルファイルの生成が非常に簡単になります。

ぜひ試してみてください。

実践例

ここでは、実際にPythonを使ってエクセルファイルを作成する具体的な例を紹介します。

初心者でも理解しやすいように、簡単な例から始め、徐々に複雑な例へと進めていきます。

簡単なエクセルファイルの作成例

まずは、基本的なエクセルファイルの作成方法を見ていきましょう。

ここでは、openpyxlを使ってシンプルなエクセルファイルを作成します。

# 必要なライブラリをインポート
from openpyxl import Workbook
# 新しいワークブックを作成
wb = Workbook()
# アクティブなシートを取得
ws = wb.active
# セルにデータを入力
ws['A1'] = 'Hello'
ws['B1'] = 'World'
# ファイルを保存
wb.save('simple_example.xlsx')

このコードを実行すると、simple_example.xlsxという名前のエクセルファイルが作成され、A1セルにHello、B1セルにWorldが入力されます。

データ分析結果をエクセルファイルに出力する例

次に、pandasを使ってデータ分析結果をエクセルファイルに出力する方法を紹介します。

ここでは、簡単なデータフレームを作成し、それをエクセルファイルに保存します。

# 必要なライブラリをインポート
import pandas as pd
# データフレームを作成
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
# データフレームをエクセルファイルに保存
df.to_excel('data_analysis_example.xlsx', index=False)

このコードを実行すると、data_analysis_example.xlsxという名前のエクセルファイルが作成され、データフレームの内容がエクセルシートに出力されます。

複数のシートを持つエクセルファイルの作成例

最後に、複数のシートを持つエクセルファイルを作成する方法を紹介します。

ここでは、openpyxlを使って複数のシートを持つエクセルファイルを作成します。

# 必要なライブラリをインポート
from openpyxl import Workbook
# 新しいワークブックを作成
wb = Workbook()
# シートを追加
ws1 = wb.create_sheet(title='Sheet1')
ws2 = wb.create_sheet(title='Sheet2')
# シート1にデータを入力
ws1['A1'] = 'Data in Sheet1'
# シート2にデータを入力
ws2['A1'] = 'Data in Sheet2'
# ファイルを保存
wb.save('multiple_sheets_example.xlsx')

このコードを実行すると、multiple_sheets_example.xlsxという名前のエクセルファイルが作成され、Sheet1Sheet2という2つのシートが含まれます。

それぞれのシートにデータが入力されています。

これらの例を通じて、Pythonを使ってエクセルファイルを作成する基本的な方法を理解できたと思います。

次は、これらの基本を応用して、より複雑なエクセルファイルを作成してみてください。

トラブルシューティング

Pythonでエクセルファイルを作成する際に、いくつかのエラーが発生することがあります。

ここでは、よくあるエラーとその対処法について解説します。

よくあるエラーとその対処法

インストールエラー

Pythonのライブラリをインストールする際に、以下のようなエラーが発生することがあります。

ModuleNotFoundError: No module named 'openpyxl'

このエラーは、openpyxlライブラリがインストールされていない場合に発生します。

以下のコマンドを実行して、openpyxlをインストールしてください。

pip install openpyxl

同様に、pandasライブラリがインストールされていない場合もエラーが発生します。

以下のコマンドを実行して、pandasをインストールしてください。

pip install pandas

ファイル保存エラー

エクセルファイルを保存する際に、以下のようなエラーが発生することがあります。

PermissionError: [Errno 13] Permission denied: 'example.xlsx'

このエラーは、指定したファイル名で保存する権限がない場合に発生します。

以下の対処法を試してください。

  1. ファイルが既に開かれていないか確認する。
  2. 保存先のディレクトリに書き込み権限があるか確認する。
  3. 別のファイル名を指定して保存してみる。

データ入力エラー

セルにデータを入力する際に、以下のようなエラーが発生することがあります。

TypeError: expected <class 'str'>, got <class 'int'>

このエラーは、セルに入力するデータの型が期待される型と異なる場合に発生します。

以下の対処法を試してください。

  1. データの型を確認し、適切な型に変換する。
  2. 文字列として入力する場合は、str()関数を使用してデータを文字列に変換する。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 数値を文字列に変換して入力
ws['A1'] = str(123)
wb.save('example.xlsx')

これらの対処法を試すことで、エラーを解消し、スムーズにエクセルファイルを作成できるようになります。

目次から探す