我当前的项目涉及编写脚本,该脚本使用Pandas和Xlsxwriter创建Excel文件,并使用cron按计划通过电子邮件API发送此文件。在开发过程中在Windows上生成excel文件时,我最初为标头设置的格式就可以了。
但是,当在测试过程中通过Linux运行脚本时,Header格式会消失,而其他单元格则保持其预期格式。
我已包含以下代码,以删除初始标头以使用我自己的自定义标头
pandas.io.formats.excel_header = None
自定义标头格式(在Windows上适用):
header_format = workbook.add_format({
'font_name': 'ARIAL',
'font_size': 10,
'bold': True,
'align': 'center',
'border': 1,
'fg_color': '#00D2EB'
})
这是我用来格式化页眉的代码
worksheet.set_row(row, None, header_format)
根据我在Windows上尝试过的内容,当我注释掉该行以删除标头格式然后应用自己的格式时,它不使用我的自定义格式。在linux上,即使使用先删除标头格式然后删除我的自定义格式的代码,它也将在没有我的自定义格式的情况下执行。它也不返回任何错误。
标题结果:
这是我在Windows中得到的 Expected
这是我在Linux中得到的 What I Got
在Linux和Windows上执行时,代码编写方式是否应不同?如果是,有什么区别?或者在哪里可以找到可以找到这种区别的材料?
答案 0 :(得分:2)
但是,当在测试过程中通过Linux运行脚本时,Header格式会消失,而其他单元格则保持其预期格式。
Windows和Linux之间的区别可能在于Pandas版本。 [Flags]
enum FoodOptions {
None = 0,
Fruits = 1,
Drinks = 2,
Lunch = 4,
Dinner = 8,
}
var options = FoodOptions.None;
if(model.Fruits.Value) options |= FoodOptions.Fruits;
if(model.Drinks.Value) options |= FoodOptions.Drinks;
if(model.Lunch.Value) options |= FoodOptions.Lunch;
if(model.Dinner.Value) options |= FoodOptions.Dinner;
在其中一种熊猫版本中进行了更改。
我建议避免像这样取消设置标头格式,因为它并不是真正的文档功能,而且如您所见,它在Pandas版本中不一致。
相反,我建议从XlsxWriter docs中关闭标题,并像下面的示例一样显式设置标题格式:
pandas.io.formats.excel_header