出典:

 

上記出典からコピペ・・・

 

■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 としています。