在 XlsxWriter 中使用带有条件格式的 for 循环的问题
Issues with using a for loop with conditional formatting in XlsxWriter
Python 2.7:
我正在尝试使用 XlsxWriter 将 excel 中包含特定文本的所有单元格加粗。我已将文本存储在列表中并使用 for 循环遍历元素。我不确定我是否使用正确的语法来指定 XlsXwriter 提供的 conditional_format
字典中 'value' 键的值。包含我字典中字符串的单元格未转换为粗体格式。
header_format = new_wb.add_format({'bold': True})
header_list = ["Issue", "Type", "Status", "Resolution", "Summary", "Priority", "Fix Version", "Labels"]
for i in range(len(header_list)):
new_ws.conditional_format('A1:Z999', {'type': 'cell', 'criteria': 'equal to', 'value': '"header_list[i]"' , 'format': header_format})
您需要使用 header 字符串作为条件格式的值,并且它们需要用双引号引起来(根据 Excel 的要求)。你正在尝试这样做,但你的语法是错误的。这是基于您的示例的更正版本:
import xlsxwriter
new_wb = xlsxwriter.Workbook('test.xlsx')
new_ws = new_wb.add_worksheet()
header_format = new_wb.add_format({'bold': True})
header_list = ["Issue", "Type", "Status", "Resolution",
"Summary", "Priority", "Fix Version", "Labels"]
for value in header_list:
new_ws.conditional_format('A1:Z999', {'type': 'cell',
'criteria': 'equal to',
'value': '"%s"' % value,
'format': header_format})
# Write some strings to test against.
new_ws.write_column('A1', ['Foo', 'Type', 'Bar', 'Status'])
new_wb.close()
目标词以粗体显示输出:
Python 2.7:
我正在尝试使用 XlsxWriter 将 excel 中包含特定文本的所有单元格加粗。我已将文本存储在列表中并使用 for 循环遍历元素。我不确定我是否使用正确的语法来指定 XlsXwriter 提供的 conditional_format
字典中 'value' 键的值。包含我字典中字符串的单元格未转换为粗体格式。
header_format = new_wb.add_format({'bold': True})
header_list = ["Issue", "Type", "Status", "Resolution", "Summary", "Priority", "Fix Version", "Labels"]
for i in range(len(header_list)):
new_ws.conditional_format('A1:Z999', {'type': 'cell', 'criteria': 'equal to', 'value': '"header_list[i]"' , 'format': header_format})
您需要使用 header 字符串作为条件格式的值,并且它们需要用双引号引起来(根据 Excel 的要求)。你正在尝试这样做,但你的语法是错误的。这是基于您的示例的更正版本:
import xlsxwriter
new_wb = xlsxwriter.Workbook('test.xlsx')
new_ws = new_wb.add_worksheet()
header_format = new_wb.add_format({'bold': True})
header_list = ["Issue", "Type", "Status", "Resolution",
"Summary", "Priority", "Fix Version", "Labels"]
for value in header_list:
new_ws.conditional_format('A1:Z999', {'type': 'cell',
'criteria': 'equal to',
'value': '"%s"' % value,
'format': header_format})
# Write some strings to test against.
new_ws.write_column('A1', ['Foo', 'Type', 'Bar', 'Status'])
new_wb.close()
目标词以粗体显示输出: