HUGE rewrite to use embedded ColumnFormat classes to handle column writing and formatting. Odd bug that should have appeared before this: need to use Workbook.add_format to create 'real' Format objects to pass to write_* methods of the Worksheet class but they were working beforehand. I must be missing something. Must have been the global font size setting in create_workbook that was there previously.