Python 如何在xlsxwriter中为条件_format()使用行-列表示法

Python 如何在xlsxwriter中为条件_format()使用行-列表示法,python,conditional-formatting,xlsxwriter,Python,Conditional Formatting,Xlsxwriter,我尝试在excel中按语法对单元格进行格式化,根据excel中填充的数据行数,我使用行索引定义单元格范围 请查找以下代码以供参考: # Write a conditional format over a range. target_sheet.conditional_format([row - len(line),1,row-1,2 ], {'type': 'cell', 'criteria': '>

我尝试在excel中按语法对单元格进行格式化,根据excel中填充的数据行数,我使用行索引定义单元格范围

请查找以下代码以供参考:

# Write a conditional format over a range.
    target_sheet.conditional_format([row - len(line),1,row-1,2 ], {'type': 'cell',
                                         'criteria': '>=',
                                         'value': 10,
                                         'format': format1})
但这会导致以下错误:

File "/usr/local/lib/python2.7/dist-packages/xlsxwriter/worksheet.py", line 80, in cell_wrapper
    int(args[0])
TypeError: int() argument must be a string or a number, not 'list'
我不确定如何继续使用这种方法,非常感谢您的帮助。蒂亚

如前所述,条件格式是Excel的一项功能,它允许您根据特定条件将格式应用于一个单元格或一系列单元格

它将一系列单元格以及应用于它们的相对格式标准作为输入。
例如,你可以这样做:

worksheet.conditional_format('B3:K12', {'type': 'cell',
                                        'criteria': '>=',
                                        'value': 10,
                                        'format': format1})
您的代码返回此错误,因为您将列表作为第一个参数,但您应该使用类似上面示例的字符串。
您可以查看其他示例。

如前所述,条件格式是Excel的一项功能,它允许您根据特定条件将格式应用于一个单元格或一系列单元格

它将一系列单元格以及应用于它们的相对格式标准作为输入。
例如,你可以这样做:

worksheet.conditional_format('B3:K12', {'type': 'cell',
                                        'criteria': '>=',
                                        'value': 10,
                                        'format': format1})
您的代码返回此错误,因为您将列表作为第一个参数,但您应该使用类似上面示例的字符串。
您可以查看其他示例。

xl_rowcol_to_cell()前来救援

请查找以下代码:

str1_val = xl_rowcol_to_cell(row-len(line), 1, row_abs=True, col_abs=True)
str2_val = xl_rowcol_to_cell(row-1, 2, row_abs=True, col_abs=True)

    # Write a conditional format over a range.
    target_sheet.conditional_format('%s:%s' % (str1_val, str2_val), {'type': 'cell',
                                         'criteria': '>=',
                                         'value': 10,
                                         'format': format1})

# Write another conditional format over the same range.
    target_sheet.conditional_format('%s:%s' % (str1_val, str2_val), {'type': 'cell',
                                         'criteria': '<',
                                         'value': -0.1,
                                         'format': format2})
str1\u val=xl\u rowcol\u to\u单元格(行len(行),1,row\u abs=True,col\u abs=True)
str2_val=xl_rowcolu to_单元格(第1行、第2行,第_abs=True,第_abs=True)
#在一个范围内写入条件格式。
目标工作表。条件工作表格式(“%s:%s%”(str1\u val,str2\u val),{'type':'cell',
“条件”:“>=”,
“值”:10,
“格式”:format1})
#在同一范围内写入另一个条件格式。
目标工作表。条件工作表格式(“%s:%s%”(str1\u val,str2\u val),{'type':'cell',
“标准”:“xl_rowcol_to_cell()来营救

请查找以下代码:

str1_val = xl_rowcol_to_cell(row-len(line), 1, row_abs=True, col_abs=True)
str2_val = xl_rowcol_to_cell(row-1, 2, row_abs=True, col_abs=True)

    # Write a conditional format over a range.
    target_sheet.conditional_format('%s:%s' % (str1_val, str2_val), {'type': 'cell',
                                         'criteria': '>=',
                                         'value': 10,
                                         'format': format1})

# Write another conditional format over the same range.
    target_sheet.conditional_format('%s:%s' % (str1_val, str2_val), {'type': 'cell',
                                         'criteria': '<',
                                         'value': -0.1,
                                         'format': format2})
str1\u val=xl\u rowcol\u to\u单元格(行len(行),1,row\u abs=True,col\u abs=True)
str2_val=xl_rowcolu to_单元格(第1行、第2行,第_abs=True,第_abs=True)
#在一个范围内写入条件格式。
目标工作表。条件工作表格式(“%s:%s%”(str1\u val,str2\u val),{'type':'cell',
“条件”:“>=”,
“值”:10,
“格式”:format1})
#在同一范围内写入另一个条件格式。
目标工作表。条件工作表格式(“%s:%s%”(str1\u val,str2\u val),{'type':'cell',

“条件”:“事实上,关于条件格式化的优秀xlsxwriter文档只显示了A1符号的示例,如:

worksheet.conditional_format('B1:B15', {'type': 'bottom', 'value': 10, 'criteria': '%', 'format':   format_red}) 
但是,也可以使用行-列表示法:

worksheet.conditional_format(1,2,15,2, {'type': 'top', 'value': 50, 'criteria': '%', 'format':   format_green}) 
# rowstart, colstart, rowend, colend
Excel中的结果:

根据“”: 通常,在使用XlsxWriter模块时,您可以在任何可以使用行-列表示法的地方使用A1表示法。这也适用于采用一系列单元格的方法:

worksheet.merge_range(2, 1, 3, 3, 'Merged Cells', merge_format)
worksheet.merge_range('B3:D4',    'Merged Cells', merge_format)

事实上,关于条件格式化的优秀xlsxwriter文档只显示了A1表示法的示例,如:

worksheet.conditional_format('B1:B15', {'type': 'bottom', 'value': 10, 'criteria': '%', 'format':   format_red}) 
但是,也可以使用行-列表示法:

worksheet.conditional_format(1,2,15,2, {'type': 'top', 'value': 50, 'criteria': '%', 'format':   format_green}) 
# rowstart, colstart, rowend, colend
Excel中的结果:

根据“”: 通常,在使用XlsxWriter模块时,您可以在任何可以使用行-列表示法的地方使用A1表示法。这也适用于采用一系列单元格的方法:

worksheet.merge_range(2, 1, 3, 3, 'Merged Cells', merge_format)
worksheet.merge_range('B3:D4',    'Merged Cells', merge_format)

是的@Giordano我看到了,但是当使用程序动态转储数据并且行数随之变化时,问题就来了。你知道如何以编程方式派生这个字符串吗?是的@Giordano我看到了,但是当使用程序动态转储数据并且行数随之变化时,问题就来了你知道这个字符串是如何通过编程派生出来的吗?只需去掉列表括号。
conditional_format()
方法接受4个行/列值,而不是列表。它还接受可选的字符串范围,但这在您的情况下并不有用,因为您正在动态设置范围。只需省略列表括号。
条件格式()
方法接受4个行/列值,而不是列表。它还接受可选的字符串范围,但这在您的情况下并不有用,因为您正在动态设置范围。