Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Linux执行时,Xlsxwriter标头格式不出现_Python_Pandas_Xlsxwriter_Python 3.7 - Fatal编程技术网

Python 使用Linux执行时,Xlsxwriter标头格式不出现

Python 使用Linux执行时,Xlsxwriter标头格式不出现,python,pandas,xlsxwriter,python-3.7,Python,Pandas,Xlsxwriter,Python 3.7,我目前的项目包括编写一个脚本,使用Pandas和Xlsxwriter生成Excel文件,并通过电子邮件API与cron一起发送该文件。在开发过程中在Windows上生成excel文件时,我最初为标题设置的格式工作得很好 但是,在测试期间通过Linux运行脚本时,标头格式将消失,而其余单元格将保持其预期格式 我已经包含了下面的代码来删除初始标题,以使用我自己的自定义标题 pandas.io.formats.excel_header = None 自定义标题格式(适用于Windows): 这是我用

我目前的项目包括编写一个脚本,使用Pandas和Xlsxwriter生成Excel文件,并通过电子邮件API与cron一起发送该文件。在开发过程中在Windows上生成excel文件时,我最初为标题设置的格式工作得很好

但是,在测试期间通过Linux运行脚本时,标头格式将消失,而其余单元格将保持其预期格式

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

pandas.io.formats.excel_header = None
自定义标题格式(适用于Windows):

这是我用来格式化标题的代码

worksheet.set_row(row, None, header_format)
根据我在windows上的尝试,当我注释掉行以删除标题格式,然后应用我自己的格式时,它不使用我的自定义格式。在linux上,即使代码先删除标题格式,然后删除我的自定义格式,它也会在没有自定义格式的情况下执行。它也不会返回任何错误

标题结果:

这是我在Windows中得到的

这就是我在Linux中得到的

在Linux和Windows上执行时,代码的编写是否应该有所不同?如果是,区别是什么?我在哪里可以找到材料来找出这种区别

但是,在测试期间通过Linux运行脚本时,标头格式将消失,而其余单元格将保持其预期格式

Windows和Linux的区别可能在于熊猫版。其中一个pandas版本中的
pandas.io.formats.excel\u标题已更改

我建议避免像这样取消标题格式,因为它实际上不是一个文档化的特性,而且正如您所看到的,它在Pandas版本中并不一致

相反,我建议关闭标题并明确设置标题格式,如XlsxWriter中的示例所示:


谢谢你的回答。我将根据您在这里的回答进行尝试。我已经检查了Pandas的Windows和Linux版本。原来Windows使用的是0.23,而Linux运行的是0.24。将Windows Pandas升级到0.24将删除“Pandas.io.formats.excel_header”行代码的使用。
worksheet.set_row(row, None, header_format)
# 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)