使用 Linux 执行时未出现 Xlsxwriter header 格式

Xlsxwriter header format not appearing when executing with Linux

我当前的项目涉及编写一个脚本,该脚本使用 Pandas 和 Xlsxwriter 创建一个 Excel 文件,并使用 cron 按计划通过电子邮件 API 发送该文件。在开发期间在 Windows 上生成 excel 文件时,我最初为 header 设置的格式工作得很好。

但是,当测试期间 运行 脚本通过 Linux 时,Header 格式消失,而其余单元格保持其预期格式。

我已经包含了下面的代码以删除初始 header 以使用我自己的自定义代码

pandas.io.formats.excel_header = None

自定义 header 格式(适用于 Windows):

header_format = workbook.add_format({
       'font_name': 'ARIAL',
       'font_size': 10,
       'bold': True,
       'align': 'center',
       'border': 1,
       'fg_color': '#00D2EB'
   })

这是我用来格式化 Header

的代码
worksheet.set_row(row, None, header_format)

根据我在 windows 上的尝试,当我注释掉删除 header 格式然后应用我自己的格式时,它不会使用我的自定义格式。在 linux 上,即使使用先删除 header 格式然后删除我的自定义格式的代码,它也会在没有我的自定义格式的情况下执行。它也没有 return 任何错误。

Header 结果:

这是我在 Windows 中得到的 Expected

这是我在 Linux 中得到的 What I Got

在Linux和Windows上执行时,代码是否应该写得不同?如果是,有什么区别或者我在哪里可以找到 material 来找到这种差异?

However, when running the script through Linux during testing, the Header formatting disappears while the rest of the cells maintain their intended format.

Windows和Linux的区别大概在Pandas版本上。 pandas.io.formats.excel_header 在其中一个 Pandas 版本中发生了变化。

我建议避免像这样取消设置 header 格式,因为它并不是真正的文档化功能,而且正如您所见,它在 Pandas 版本中并不一致。

相反,我建议关闭 header 并像 XlsxWriter docs:

中的示例一样显式设置 header 格式
# Turn off the default header and skip one row to allow us to insert a
# user defined header.
df.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False)

# Get the xlsxwriter workbook and worksheet objects.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

# Add a header format.
header_format = workbook.add_format({
    'bold': True,
    'text_wrap': True,
    'valign': 'top',
    'fg_color': '#D7E4BC',
    'border': 1})

# Write the column headers with the defined format.
for col_num, value in enumerate(df.columns.values):
    worksheet.write(0, col_num + 1, value, header_format)