views:

956

answers:

4

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.

Thnak you,

Alex

+1  A: 

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.

Alex Martelli
+1  A: 

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')
Adam Bernier
Note: you most likely won't want to use "from module_name import *" in practice, this is used here for illustrative purposes only.
Adam Bernier
+1  A: 

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!

Brendan Wood
A: 

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.

spiffyman