我的数据是数据框'我该怎么做?
import xlsxwriter
workbook = xlsxwriter.Workbook("test1.xlsx")
worksheet = workbook.add_worksheet("sheli22")
worksheet.add_table('B3:F7', {'data': data,'style': 'Table Style Light 17','header_row': False})
workbook.close()
根据涵盖
.add_table()
方法的 xlsxwriter 文档部分,它期望“数据结构应该是列表的列表”(链接到文档)。
要从数据帧创建此列表列表,需要使用
.T
转置数据帧,然后使用 .tolist()
将转置数据帧转换为列表列表。
我有一个使用下面的示例数据框的完全可重现的示例。
import pandas as pd
import xlsxwriter
data = pd.DataFrame({'a':[1,2,3,4,5],
'b':[2,3,4,5,6],
'c':[3,4,5,6,7],
'd':[4,5,6,7,8],
'e':[5,6,7,8,9]})
workbook = xlsxwriter.Workbook("test1.xlsx")
worksheet = workbook.add_worksheet("sheli22")
worksheet.add_table('B3:F7', {'data': data.values.T.tolist(),'style': 'Table Style Light 17','header_row': False})
workbook.close()
预期输出:
或者,使用 ExcelWriter:
with pd.ExcelWriter(path, engine='xlsxwriter') as ew:
data.to_excel(ew, sheet_name=sheet_name, **kwargs)
worksheet = ew.sheets[sheet_name]
options = dict(columns=[{'header': c} for c in sheet_df.columns], ...)
worksheet.add_table(0, 0, data.shape[0], data.shape[1] - 1, options=options)
writer = pd.ExcelWriter(excel_file_name, engine='xlsxwriter')
worksheet = writer.sheets[sheet_name]
worksheet.add_table(start_row,start_col,end_row,end_col,{'style':'Table style light 16','header_row': False})
start_row
是 Excel 表格的起始行,start_col
与 start_row
相同,end_row
是 start_row+(len(data frame))
,end_col
是 start_col + len(data frame.columns)