从数据框字典创建Excel表

问题描述

我有数据框字典。

dd = {
'table': pd.DataFrame({'Name':['Banana'],'color':['Yellow'],'type':'Fruit'}),'another_table':pd.DataFrame({'city':['Atlanta'],'state':['Georgia'],'Country':['United States']}),'and_another_table':pd.DataFrame({'firstname':['John'],'middlename':['Patrick'],'lastnme':['Snow']}),}

我想创建一个Excel文件,其中包含根据这些数据框创建的Excel Table对象。每个表都必须位于单独的选项卡/表上,并且表名称应与数据框名称匹配。

这可能与Python有关吗?

到目前为止,我只能将数据正常导出到Excel,而不能使用xlsxwriter

转换为表。
writer = pd.ExcelWriter('Results.xlsx',engine='xlsxwriter')

for sheet,frame in  dd.items():
    frame.to_excel(writer,sheet_name = sheet)

writer.save()

解决方法

要从Pandas编写多张纸,请使用 openpyxl 库。另外,为防止覆盖,请在每次更新之前设置工作簿表。

尝试以下代码:

import pandas as pd
import openpyxl

dd = {
'table': pd.DataFrame({'Name':['Banana'],'color':['Yellow'],'type':'Fruit'}),'another_table':pd.DataFrame({'city':['Atlanta'],'state':['Georgia'],'Country':['United States']}),'and_another_table':pd.DataFrame({'firstname':['John'],'middlename':['Patrick'],'lastnme':['Snow']}),}

filename = 'Results.xlsx'  # must exist

wb = openpyxl.load_workbook(filename)

writer = pd.ExcelWriter(filename,engine='openpyxl')

for sheet,frame in  dd.items():
    writer.sheets = dict((ws.title,ws) for ws in wb.worksheets) # need this to prevent overwrite
    frame.to_excel(writer,index=False,sheet_name = sheet)

writer.save()

# convert data to tables
wb = openpyxl.load_workbook(filename)
for ws in wb.worksheets:
   mxrow = ws.max_row
   mxcol = ws.max_column
   tab = openpyxl.worksheet.table.Table(displayName=ws.title,ref="A1:" + ws.cell(mxrow,mxcol).coordinate)
   ws.add_table(tab)

wb.save(filename)

输出

ExcelTables

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...