Pythonのリスト(list)をExcelに出力する方法を紹介します。
PythonのExcel操作の定番ライブラリである、「openpyxl」を用いたリストのExcel出力方法を中心に紹介しています。
また、補足的な内容として、「pandas」を用いたリストのExcel出力方法についても、サンプルコードを交えながら紹介しています。
この記事で分かること
①Excel出力できるライブラリ「openpyxl」の基本的な使い方
- openpyxlのインストール方法
- openpyxlの基本的な使い方
②「openpyxl」を利用して、リスト(list)をExcelへ出力する方法
③「pandas」を利用して、リスト(list)をExcelへ出力する方法
スポンサーリンク
Excel出力できるライブラリ「openpyxl」の基本的な使い方
pythonでExcelを操作する方法はいくつかありますが、
最もよく使われるのが、外部ライブラリの「openpyxl」です。
はじめに、openpyxlの基本的な使い方について紹介します。
openpyxlのインストール
openpyxlは外部ライブラリであるため、
pipコマンドでのインストールが必要です。
コマンドプロンプトから、下記を入力し、インストールします。
>pip install openpyxl
openpyxlの基本的な使い方
リストをExcelに出力を紹介する前に、
openpyxlの基本的な使い方を紹介します。
下記は、新規でExcelのworkbookを作成する場合のサンプルコードになります。
### openpyxlの基本的な使い方
import openpyxl
excel_path = r"C:\***** 任意の保存先 *****\test.xlsx"
wb = openpyxl.Workbook()
sheet = wb.worksheets[0]
sheet.cell(2, 1, "Apple")
wb.save(excel_path)
wb.close()
>import openpyxl
import文で、openpyxlをインポートします。
>excel_path = r"C:\***** 任意の保存先 *****\test.xlsx"
新規に作成する、Excel Workbookのディレクトリと、ファイル名を指定しています。
「***** 任意の保存先 *****」の部分は、好きな場所に置き換えてください。
また、文字列の先頭に「r」をつけると、その文字列は 「raw文字列」 として扱われます。
例えば、"\n"という文字列は、pythonにより改行として扱われてしまいますが、raw文字列とすることで文字列の一部として扱われるようになります。
>wb = openpyxl.Workbook()
このコマンドで、Excelファイルを作成しています。
>sheet = wb.worksheets[0]
0番目のExcel sheetを指定しています。
>sheet.cell(2, 1, "Apple")
先ほど指定したsheetの、2行1列目に、"Apple"と書き込みます。
2行1列目とした、特別な理由はありません。挙動が分かりやすいので、行と列を変えました。
>wb.save(excel_path)
先ほど、指定したパスで、Excelを保存します。
>wb.close()
Workbookを閉じます。
すでにあるExcelファイルに、openpyxlを利用して書き込む場合
すでに作成済みのExcelのWorkbookに書き込む場合のサンプルコードも載せておきます。
### すでにあるWorkbookに書き込む場合
import openpyxl
excel_path = r"C:\***** 任意の保存先 *****\test.xlsx"
wb = openpyxl.load_workbook(excel_path)
sheet = wb.worksheets[0]
sheet.cell(3, 1, "Banana")
wb.save(excel_path)
wb.close()
Workbookを新規作成する場合の、
wb = openpyxl.Workbook() を、
wb = openpyxl.load_workbook(excel_path) に、
変えています。
スポンサーリンク
openpyxlを利用して、リスト(list)をExcelへ出力する方法
ここからが本題です。
openpyxlを使って、リストをExcelへ出力する方法を紹介します。
下記2つの方法について、サンプルコードを用いながら紹介します。
方法①:sheet.append( )を使って、Excelに出力
はじめに、リストを行ごとに書き込んでいく方法を紹介します。
以下、サンプルコードです。
### リストをExcelに出力するサンプルコード(行ごと出力)
import openpyxl
list_1 = [
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
]
excel_path = r"C:\***** 任意の保存先 *****\test.xlsx"
wb = openpyxl.Workbook()
sheet = wb.worksheets[0]
for row in list_1 :
sheet.append(row)
wb.save(excel_path)
wb.close()
for row in list_1 :
sheet.append(row)
の部分で、list_1から行を1つずつ取り出し、
sheet.append(row)でExcelに出力しています。
方法②:関数を作成して、Excelに出力
次に、関数を定義して、リストをExcel出力する方法を紹介します。
以下、サンプルコードです。
### リストをExcelに出力するサンプルコード(関数定義)
import openpyxl
def write_list_2d(sheet, l_2d, start_row, start_col):
for y, row_data in enumerate(l_2d):
for x, cell_data in enumerate(row_data):
sheet.cell(row=start_row + y, column=start_col + x, value=l_2d[y][x])
list_1 = [
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
]
excel_path = r"C:\***** 任意の保存先 *****\test.xlsx"
wb = openpyxl.Workbook()
sheet = wb.worksheets[0]
write_list_2d(sheet, list_1, 2, 1)
wb.save(excel_path)
wb.close()
def文で、リストの要素を1つずつ取り出して、書き込んでいく関数を定義しています。
>write_list_2d(sheet, list_1, 2, 1)
定義した関数に引数を渡して、Excelに書き込んでいます。
引数は順番に、"openpyxlのworksheet"、"リスト"、"書き込み開始行"、"書き込み開始列"
になっています。
なお、サンプルコードの作成にあたっては、
こちらのサイトを参考にさせていただきました。
スポンサーリンク
pandasを利用して、リスト(list)をexcelへ出力する方法
参考までに、openpyxlの代わりにpandasを利用して、リストをExcelに書き込む例を紹介します。
なお、pandasは、データ解析を支援する機能を提供してくれるライブラリです。
以下、サンプルコードです。
###### リストをExcelに出力するサンプルコード(pandas利用)
import pandas as pd
list_1 = [
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
]
excel_path = r"C:\***** 任意の保存先 *****\test.xlsx"
df = pd.DataFrame(list_1)
df.to_excel(excel_path, sheet_name='test', index=False, header=False, startrow=1, startcol=0)
>df = pd.DataFrame(list_1)
リストをDataFrameオブジェクトに変換しています。
>df.to_excel(excel_path, sheet_name='test', index=False, header=False, startrow=1, startcol=0)
DataFrameオブジェクトに変換したデータをExcelに出力しています。
「index=False, header=False」:インデックス、カラム名は出力無しとしています。
「startrow=1, startcol=0」:2行1列目から出力しています。df.to_excelは、セルの開始が0始まりになっていることに注意してください。
スポンサーリンク
まとめ
pythonのリスト(list)をExcelに出力する方法について紹介しました。
「openpyxl」は業務の効率化に取り組みたい場合は、必須になるライブラリですので、基本的は使い方は覚えておくようにしましょう。
なお、リストをcsvに出力する方法を下記記事で紹介しています。併せて参考にしてみてください。
スポンサーリンク