使用 Python 将 Table 写入 Excel 时遇到问题

Having Trouble Writing Table to Excel with Python

您好,我正在尝试使用来自另一个 excel 电子表格的数据框在 excel 中创建一个 table,并将 table 写入一个新电子表格。我相信我的代码是正确的,但 table 没有写入新的 excel 电子表格。谁能看看我的代码并告诉我哪里出了问题?

import xlsxwriter

import pandas as pd
import openpyxl as pxl
import xlsxwriter
import numpy as np
from openpyxl import load_workbook
path = '/Users/benlong/Downloads/unemployment.xlsx'

df = pd.read_excel(path)
rows = df.shape[0]
columns = df.shape[1]
wb = xlsxwriter.Workbook('UE2.xlsx')
ws = wb.add_worksheet('Sheet1')
ws.add_table(0,0,rows,columns, {'df': df})
wb.close()

可能重复:How to use xlsxwriter .add_table() method with a dataframe?

您可以尝试将数据框转换为列表列表并使用 data 关键字。

ws.add_table(0,0,rows,columns, {'data': df.values.T.tolist()})

您应该将数据框转换为列表。通过使用 df.values.tolist() 并使用键 data.

在您的情况下,您还应该设置 df 的 header 并避免出现 nan 值错误。 例如:

import xlsxwriter as xlw

# while got NaN/Inf values from ur dataframe , u'll get a value of '#NUM!' instead in saved excel
wb = xlw.Workbook('UE2.xlsx',{'nan_inf_to_errors': True})
ws = wb.add_worksheet('Sheet1')
cell_range = xlw.utility.xl_range(0, 0, rows, columns-1)
header = [{'header': str(di)} for di in df.columns.tolist()]
ws.add_table(cell_range, {'header_row': True,'first_column': False,'columns':header,'data':df.values.tolist()})
wb.close()