6

How do I format cells in Excel with python?

In particular I need to change the font of several subsequent rows to be regular instead of bold.

1

4 Answers 4

3

Using xlwt:

from xlwt import *

font0 = Font()
font0.bold = False

style0 = XFStyle()
style0.font = font0

wb = Workbook()
ws0 = wb.add_sheet('0')

ws0.write(0, 0, 'myNormalText', style0)

font1 = Font()
font1.bold = True

style1 = XFStyle()
style1.font = font1

ws0.write(0, 1, 'myBoldText', style1)

wb.save('format.xls')
Sign up to request clarification or add additional context in comments.

1 Comment

Note: you most likely won't want to use "from module_name import *" in practice, this is used here for illustrative purposes only.
3

For using Python for Excel operations in general, I highly recommend checking out this site. There are three python modules that allow you to do pretty much anything you need: xlrd (reading), xlwt (writing), and xlutils (copy/modify/filter). On the site I mentioned, there is quite a bit of associated information including documentation and examples. In particular, you may be interested in this example. Good luck!

Comments

1

For generic examples of Excel scripting from Python, this snippet is very handy. It doesn't specifically do the "change font to regular", but that's just range.Font.Bold = False in a function otherwise very similar to the set_border one in that snippet.

Comments

1

Here is a brief introduction to using xlwt and the complementary xlrd (for reading .xls files). However, the Reddit thread where I discovered that article has a huge number of useful bits of advice, including some cautionary notes and how to use the win32com module to write Excel files better (see this comment, for example) - frankly, I think the code is easier to read/maintain. You can probably learn a lot more over at the pretty active python-excel group.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.