模式的 xlsxwriter 格式似乎...有问题?

xlsxwriter format for pattern seems... buggy?

所以我尝试在 xlsxwriter 中应用格式为 class 的模式。

import xlsxwriter

wb = xlsxwriter.Workbook("Temp.xlsx")
sheet = wb.add_worksheet()

blank_pattern_format = wb.add_format({
            'align':'center',
            'valign' : 'vcenter',
            'border' : 1,
            'shrink' : True,
            'font_size' :10,
            'bold' : True,
            'pattern' : 4,
})

sheet.write("A1","",blank_pattern_format)
wb.close()

我想要 Excel 中的第四个图案,即“25% 灰色”。但是对于该单元格来说,结果只是纯黑色。 有趣的是,当我检查那个黑色单元格的 属性 时,它实际上显示它具有 bg_color 的 None 颜色,并且还应用了“25% 灰色”模式细胞.

我试图将格式复制到 excel 中的其他单元格。而且还变成了纯黑色。

但是当我再次进入 属性 单元格,并选择了完全相同的图案(“25% 灰色”)(显示为已被选择),并单击确认而不调整任何其他内容时,它现在显示为 25% 的灰色图案,而不是纯黑色图案。

我认为这意味着模式的 xlsxwriter 模块中可能存在错误。我可以做些什么来解决这个问题吗?或者随便逛逛? (关于格式 class 的模式的文档很短,对解决这个问题没有帮助)

希望大家多多赐教。提前致谢!

这可能是一个错误。当未指定前景色和背景色时,会出现一些奇怪的 Excel 边缘情况。我会调查一下。

同时,您可以通过指定背景颜色来解决此问题:

import xlsxwriter

wb = xlsxwriter.Workbook('temp.xlsx')
sheet = wb.add_worksheet()

blank_pattern_format = wb.add_format({
    'align': 'center',
    'valign': 'vcenter',
    'border': 1,
    'shrink': True,
    'font_size': 10,
    'bold': True,
    'pattern': 4,
    'bg_color': 'white',
})

sheet.write('A1', '', blank_pattern_format)
wb.close()

输出: