Monday, 30 September 2013

python win32com excel border formatting

python win32com excel border formatting

I have a piece of code here that actually work to format the borders in
excel using python win32com. My concern is the time it take to format the
borders. I tried to record a macro in excel to find out the required
information to transpose it in my script but it didn't work.
So the best that I can do is to run in a for range loop where I always
start at row 3 up to a row counter called shn[1] by increment of 1 and
from column 1 to 10 by increment of 1. From there I use "BorderAround()"
which work fine but too slow. Here my piece of code:
for shn in [("Beam-Beam", bb_row, bb_col), ("Beam-Col", bc_row, bc_col)]:
sheet = book.Worksheets(shn[0])
sheet.Range( "J3:DW3" ).Copy()
if shn[0] == "Beam-Col":
sheet.Range( "J3:AA3" ).Copy()
sheet.Range( sheet.Cells( 4, 10 ), sheet.Cells( shn[1]-1, 10 )
).PasteSpecial()
for mrow in xrange(3,shn[1],1):
for mcol in xrange(1,10,1):
sheet.Cells(mrow, mcol).BorderAround()#.Border(1)
Is there something I can do to format the borders with a range like ==>
sheet.Range( sheet.Cells(3,1), sheet.Cells(shn[1],10) )? I tried
".Borders(11)" and ".Borders(12)" plus ".BorderAround()", but only
".BorderAround()" have worked.
Thanks in advance.

No comments:

Post a Comment