2017-07-13 110 views
1

我試圖根據excel中填充多少行數據的方式,對excel中的單元格進行編程式格式化,我使用行索引定義單元格的範圍。如何在xlsxwriter中爲條件格式()使用行列符號

請從下面的代碼以供參考:

# 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' 

我不知道如何使用這種方法進行,任何幫助表示高度讚賞。 TIA!

+0

就離開了列表括號。 'conditional_format()'方法需要4行/列值不是列表。它也需要一個可選的字符串範圍,但在你的情況下這沒有用,因爲你正在動態地設置範圍。 – jmcnamara

回答

1

documentation所述,條件格式是Excel的一項功能,它允許您根據特定條件將格式應用於單元格或一系列單元格。

它將輸入的單元格範圍和相對格式標準用作輸入。
因此,例如,你可以做這樣的事情:

worksheet.conditional_format('B3:K12', {'type': 'cell', 
             'criteria': '>=', 
             'value': 10, 
             'format': format1}) 

您的代碼返回此錯誤,因爲你把作爲第一個參數列表,但你應該使用像上面的例子中的字符串。
您可以查看其他示例here

+0

是啊@Giordano我看到了,但問題出現在使用程序動態轉儲數據時,行數隨之改變。你對這個字符串如何以編程方式派生有任何想法嗎? – R2D2

+0

請編輯您的問題,添加完整的腳本 – Giordano

1

的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}) 
相關問題