编写一行后的Python xlswriter设置格式

时间:2018-02-22 07:42:55

标签: python xlsxwriter

在接下来的循环中,我正在编写单元格并构建其中的一些单元格。 在某些情况下,我想设置bg_color

def WriteExcelData(workbook,worksheet,row,datas):
col = 0
formatDate = workbook.add_format({'num_format': 'dd/mm/yy'})
formatHour = workbook.add_format({'num_format': 'hh:mm'})
for data in datas:
    if re.match('^\d{2}\/\d{2}\/\d{4}$', data):
        #print 'date:',data
        worksheet.write(row,col,datetime.strptime(data, '%d/%m/%Y'),formatDate)
    elif re.match('^\d{2}\:\d{2}\:\d{2}$', data):
        worksheet.write(row,col,datetime.strptime(data, '%H:%M:%S'),formatHour)
    else:
        worksheet.write(row,col,data)

    col += 1
return

有没有办法在编写完成后在一行上应用格式? 如果没有,是否可以组合几种格式? 类似的东西:

format1 = workbook.add_format({'num_format': 'hh:mm'})
format2 = workbook.add_format({'bg_color': '#dcdcdc'})
format3 = format1 + format2

由于

1 个答案:

答案 0 :(得分:0)

format1 = workbook.add_format({
            'num_format': 'hh:mm'
            'bg_color': '#dcdcdc'
            })
format2 = workbook.add_format({
            'num_format': 'hh:mm'
            })
  • 如果你想设置num_formate和bg_colort而不是set format1,你可以试试这个,否则就是format2。

- 可能这个例子会对你有帮助。

caption = ('Duplicate values are in light red. '
           'Unique values are in light green.')

worksheet3.write('A1', caption)

for row, row_data in enumerate(data):
    worksheet3.write_row(row + 2, 1, row_data)

worksheet3.conditional_format('B3:K12', {'type': 'duplicate','format': format1})
worksheet3.conditional_format('B3:K12', {'type': 'unique','format': format2})