出典:
上記出典からコピペ・・・
■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()
■リストを行ごとに書き込んでいく方法
### リストを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()
■openpyxlの代わりにpandasを利用して、リストをExcelに書き込む
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
■pandasで、リストを新規のcsvファイルに出力する
出典:
import pandas as pd
list_1 = [
["No.", "Fluits", "Price"],
[1, "Apple", 100],
[2, "Banana", 200],
[3, "Orange", 100]
]
csv_path = r"C:\***** 任意の保存先 *****\test.csv"
df = pd.DataFrame(list_1[1:], columns=list_1[0])
df.to_csv(csv_path, index=False)
サンプルコードでは、元のリストに列名に相当するデータが入っています。
このデータを、DataFrameの列名(column)にするために、下記の処理を行っています。
>df = pd.DataFrame(list_1[1:], columns=list_1[0])
こちらのコマンドで、リストをDataFrameに格納しています。
列名に相当するデータである「list_1[0]」を、columnsとして指定しています。
また、DataFrame化するデータとして、
リストのスライス機能を用いて、リストの1行目以降を渡しています。
>df.to_csv(excel_path, index=False)
こちらのコマンドで、csvファイルへ出力しています。
今回はインデックスは出力したくなかったので、 index=False としています。