Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XlsxWriter : make a solid filled data bar

I have successfully created some data bar plot with the python module xlsxwriter by its conditional_format method. However, is it possible to specify the fill pattern of condition format within xlswriter or python generally? I tried the following code which didn't work:

myformat = workbook.add_format()
myformat .set_pattern(1)
worksheet.conditional_format(0, 4, 0, 4, {'type': 'data_bar',
                                                  'min_value': 0,
                                                  'min_type': 'num',
                                                  'max_value': 110,
                                                  'max_type': 'num',
                                                  'bar_color': '#C00000',
                                                  'format': myformat})
like image 248
empenguin Avatar asked May 26 '26 06:05

empenguin


2 Answers

It is possible to set the pattern of the format for some conditional formats with XlsxWriter.

However, as far as I know, it isn't possible, in Excel, to set a patten type for data_bar conditional formats.

You could do it with a cell format:

import xlsxwriter

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

myformat = workbook.add_format()
myformat.set_pattern(1)
myformat.set_bg_color('#C00000')


worksheet.conditional_format(0, 4, 0, 4, {'type': 'cell',
                                          'criteria': 'between',
                                          'minimum':  0,
                                          'maximum':  110,
                                          'format':   myformat})

worksheet.write(0, 4, 50)


workbook.close()

If, on the other hand, you are looking for a non-gradient data_bar fill, that isn't currently supported.

like image 191
jmcnamara Avatar answered May 30 '26 06:05

jmcnamara


for newer version, you only need the 'data_bar_2010' property to true:

worksheet.conditional_format(0, 4, 0, 4, {'type': 'data_bar','data_bar_2010': True})

see the xlsxwriter documents here

like image 36
Chao Liang Avatar answered May 30 '26 07:05

Chao Liang



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!