我正在尝试向 Pandas 数据框的 Excel 输出添加一些格式,但只有部分格式有效。
我可以使用 2 位十进制数字格式,但不能使用列宽、日期格式、标题对齐或自动调整。这里做错了什么?我没有收到错误,但当我在 Excel 中打开输出文件时,我提到的格式并不在输出文件中。
# Create a Pandas Excel writer using XlxsWriter as the engine.
writer = pd.ExcelWriter(my_path, engine='xlsxwriter')
# Convert the df to XlsxWriter Excel object.
df_new_db.to_excel(writer, sheet_name="Sheet1",index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
num_2deci = workbook.add_format({'num_format':'0.00'})
my_dt = workbook.add_format({'num_format':'m/d/yyyy'})
align_left = workbook.add_format({'align':'left'})
worksheet.set_row(0, None, align_left)
worksheet.set_column('V:V', None, my_dt)
worksheet.set_column('Y:Y', None, num_2deci)
worksheet.set_column('Z:Z', None, num_2deci)
worksheet.autofit()
writer.close()
在上面评论者的帮助下我能够得到它(谢谢!)。这是我想出的答案,以防对其他人有帮助:
# Create a Pandas Excel writer using XlxsWriter as the engine. Set the default date column display in this step.
writer = pd.ExcelWriter(r'C:\Users\JoelSilverman\Documents\current_python\excel_merge\output\new_db_rows.xlsx', engine='xlsxwriter', date_format='m/d/yyyy')
# Convert the df to XlsxWriter Excel object, but drop the header row so that it can be formated below using xlsxwriter
df_new_db.to_excel(writer, sheet_name="Sheet1", startrow=1, header=False,index=False)
# Make the workbook and worksheet
workbook = writer.book
worksheet = writer.sheets['Sheet1']
# Define the number format to display: 2 decimal places.
num_2deci = workbook.add_format({'num_format':'0.00'})
# Format the columns using the decimal format
worksheet.set_column("Y:Z", None, num_2deci)
# Format the header with the header format you define
header_format = workbook.add_format({"align": "left"})
for col_num, value in enumerate(df_new_db.columns.values):
worksheet.write(0, col_num, value, header_format)
#Autofit the column width to fit the data
worksheet.autofit()
writer.close()