Xlsxwriter, formatting just some cells, not whole row or whole column?
I have a dataframe that I am sending to Excel using the xlsxwriter engine, then applying formatting to a sheet before closing it. How can I only set a bg color for the columns that have data in them?
For example, I am able to add a yellow background color to the second column (below), but it extends past the cells that have data in them. I am doing this with set_column() as below:
worksheet.set_column(1, 1, 18, hilite_format)
I don't see an option to set column format for only certain rows, or to use set_row() to only format certain columns. I've already written the data to the worksheet, so I can't use worksheet.write() or it will overwrite the data that is already in there. At least I don't see any way to use .write() to just apply the formatting without writing data or None into the cells.
Is there a way to just 'paint' some formatting over a range of cells without affecting the values in those cells? I would prefer not to have to use conditional formatting or to re-write the data for these cells just to be able to get the formatting right.
Thank!

python formatting xlsxwriter
add a comment |
I have a dataframe that I am sending to Excel using the xlsxwriter engine, then applying formatting to a sheet before closing it. How can I only set a bg color for the columns that have data in them?
For example, I am able to add a yellow background color to the second column (below), but it extends past the cells that have data in them. I am doing this with set_column() as below:
worksheet.set_column(1, 1, 18, hilite_format)
I don't see an option to set column format for only certain rows, or to use set_row() to only format certain columns. I've already written the data to the worksheet, so I can't use worksheet.write() or it will overwrite the data that is already in there. At least I don't see any way to use .write() to just apply the formatting without writing data or None into the cells.
Is there a way to just 'paint' some formatting over a range of cells without affecting the values in those cells? I would prefer not to have to use conditional formatting or to re-write the data for these cells just to be able to get the formatting right.
Thank!

python formatting xlsxwriter
There is not way at the time of writing to change a format of an already "written" cell using Xlsxwriter. It's a feature-request, but it's not a priority. I think the only feasible thing to do for you is to use conditional formatting, just as @LuanNaufal already has given you the code for.
– Hampus Larsson
Nov 13 '18 at 19:38
add a comment |
I have a dataframe that I am sending to Excel using the xlsxwriter engine, then applying formatting to a sheet before closing it. How can I only set a bg color for the columns that have data in them?
For example, I am able to add a yellow background color to the second column (below), but it extends past the cells that have data in them. I am doing this with set_column() as below:
worksheet.set_column(1, 1, 18, hilite_format)
I don't see an option to set column format for only certain rows, or to use set_row() to only format certain columns. I've already written the data to the worksheet, so I can't use worksheet.write() or it will overwrite the data that is already in there. At least I don't see any way to use .write() to just apply the formatting without writing data or None into the cells.
Is there a way to just 'paint' some formatting over a range of cells without affecting the values in those cells? I would prefer not to have to use conditional formatting or to re-write the data for these cells just to be able to get the formatting right.
Thank!

python formatting xlsxwriter
I have a dataframe that I am sending to Excel using the xlsxwriter engine, then applying formatting to a sheet before closing it. How can I only set a bg color for the columns that have data in them?
For example, I am able to add a yellow background color to the second column (below), but it extends past the cells that have data in them. I am doing this with set_column() as below:
worksheet.set_column(1, 1, 18, hilite_format)
I don't see an option to set column format for only certain rows, or to use set_row() to only format certain columns. I've already written the data to the worksheet, so I can't use worksheet.write() or it will overwrite the data that is already in there. At least I don't see any way to use .write() to just apply the formatting without writing data or None into the cells.
Is there a way to just 'paint' some formatting over a range of cells without affecting the values in those cells? I would prefer not to have to use conditional formatting or to re-write the data for these cells just to be able to get the formatting right.
Thank!

python formatting xlsxwriter
python formatting xlsxwriter
asked Nov 13 '18 at 19:06
KorzakKorzak
103210
103210
There is not way at the time of writing to change a format of an already "written" cell using Xlsxwriter. It's a feature-request, but it's not a priority. I think the only feasible thing to do for you is to use conditional formatting, just as @LuanNaufal already has given you the code for.
– Hampus Larsson
Nov 13 '18 at 19:38
add a comment |
There is not way at the time of writing to change a format of an already "written" cell using Xlsxwriter. It's a feature-request, but it's not a priority. I think the only feasible thing to do for you is to use conditional formatting, just as @LuanNaufal already has given you the code for.
– Hampus Larsson
Nov 13 '18 at 19:38
There is not way at the time of writing to change a format of an already "written" cell using Xlsxwriter. It's a feature-request, but it's not a priority. I think the only feasible thing to do for you is to use conditional formatting, just as @LuanNaufal already has given you the code for.
– Hampus Larsson
Nov 13 '18 at 19:38
There is not way at the time of writing to change a format of an already "written" cell using Xlsxwriter. It's a feature-request, but it's not a priority. I think the only feasible thing to do for you is to use conditional formatting, just as @LuanNaufal already has given you the code for.
– Hampus Larsson
Nov 13 '18 at 19:38
add a comment |
2 Answers
2
active
oldest
votes
Try using the conditional_format(), highlighting the cells that are not blank:
worksheet.conditional_format('B:B', 'type': 'no_blanks',
'format': hilite_format)
add a comment |
Try this code :
You put your logic here and use whenever you want in cell.
merge_format = workbook.add_format(
'border': 1,
'align': 'center',
'valign': 'vcenter')worksheet.merge_range('A1:R1', 'AGENCIES', merge_format)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53287909%2fxlsxwriter-formatting-just-some-cells-not-whole-row-or-whole-column%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try using the conditional_format(), highlighting the cells that are not blank:
worksheet.conditional_format('B:B', 'type': 'no_blanks',
'format': hilite_format)
add a comment |
Try using the conditional_format(), highlighting the cells that are not blank:
worksheet.conditional_format('B:B', 'type': 'no_blanks',
'format': hilite_format)
add a comment |
Try using the conditional_format(), highlighting the cells that are not blank:
worksheet.conditional_format('B:B', 'type': 'no_blanks',
'format': hilite_format)
Try using the conditional_format(), highlighting the cells that are not blank:
worksheet.conditional_format('B:B', 'type': 'no_blanks',
'format': hilite_format)
answered Nov 13 '18 at 19:29
Luan NaufalLuan Naufal
4908
4908
add a comment |
add a comment |
Try this code :
You put your logic here and use whenever you want in cell.
merge_format = workbook.add_format(
'border': 1,
'align': 'center',
'valign': 'vcenter')worksheet.merge_range('A1:R1', 'AGENCIES', merge_format)
add a comment |
Try this code :
You put your logic here and use whenever you want in cell.
merge_format = workbook.add_format(
'border': 1,
'align': 'center',
'valign': 'vcenter')worksheet.merge_range('A1:R1', 'AGENCIES', merge_format)
add a comment |
Try this code :
You put your logic here and use whenever you want in cell.
merge_format = workbook.add_format(
'border': 1,
'align': 'center',
'valign': 'vcenter')worksheet.merge_range('A1:R1', 'AGENCIES', merge_format)
Try this code :
You put your logic here and use whenever you want in cell.
merge_format = workbook.add_format(
'border': 1,
'align': 'center',
'valign': 'vcenter')worksheet.merge_range('A1:R1', 'AGENCIES', merge_format)
answered Nov 16 '18 at 13:08
Bhoomi VaishnaniBhoomi Vaishnani
516218
516218
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53287909%2fxlsxwriter-formatting-just-some-cells-not-whole-row-or-whole-column%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
There is not way at the time of writing to change a format of an already "written" cell using Xlsxwriter. It's a feature-request, but it's not a priority. I think the only feasible thing to do for you is to use conditional formatting, just as @LuanNaufal already has given you the code for.
– Hampus Larsson
Nov 13 '18 at 19:38