有没有办法在不设置值的情况下在 xlsxwriter 中应用单元格格式?

Is there a way to apply cell format in xlswriter without setting a value?

有没有办法在不设置值的情况下应用 xlswriter 中的单元格格式?并且在worksheet.write使用A1表示法方面,可以做到一个范围吗?

喜欢:

format = workbook.add_format()
format.set_border(1)
format.set_bold()
worksheet.write(row=0, col=0, format=format)
worksheet.write('A1:C3', format=format)

使用 worksheet.write() 您无法指定范围。您可以将它放在一个循环中并使用 xlsxwriter.utility.xl_rowcol_to_cell() 来实现您想要的。 Here 是 xlsxwriter 文档中涉及 xlsxwriter.utility.xl_rowcol_to_cell() 的进一步解释和示例。

您还可以通过输入 "" 作为 worksheet.write() 中的第二个参数来格式化空白单元格。我在下面提供了一个完整的工作示例以及预期输出的图像。

import xlsxwriter
from xlsxwriter.utility import xl_rowcol_to_cell

workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()

format = workbook.add_format()
format.set_border(1)
format.set_bold()
format.set_bg_color("blue")
format.set_num_format('#,##0')

for i in range (0, 3):
    #we're looping through columns
    for j in range (0, 3):
    #we're looping through rows
        cell_reference = xl_rowcol_to_cell(i, j, row_abs=True, col_abs=True)
        worksheet.write('%s' % (cell_reference), "" ,format)

workbook.close()