df = pd.DataFrame(np.arange(9).reshape(3,3), columns=['col_' + i for i in list('ABC')])
df
>>> col_A col_B col_C
>>>0 0 1 2
>>>1 3 4 5
>>>2 6 7 8
from openpyxl.utils.dataframe import dataframe_to_rows
wb = Workbook()
ws = wb.active
for r in dataframe_to_rows(df, index=True, header=True):
ws.append(r)
wb.save('df_to_openpyxl.xlsx')
# Excel開くと
col_A col_B col_C
ここに1行開く
0 0 1 2
1 3 4 5
2 6 7 8