xlwt写excel时是没有样式处理的,打开后直观不太好,又没有属性让列自适应宽度,查阅资料后发现内容有:
- sheet也有设置列宽度方法 worksheet5.col(3).width = 256 * 16
- xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位
xlwt创建时使用的默认宽度为2960,既11个字符0的宽度
所以在处理数据时记录一下列里面最长字符串的长度,记录完后可以复制列宽度
col_len = {'0':10 ,'1': 10, '2':10}
for data_line in date_lines:
worksheet.write(0, 0, data_line.first_col_date)
col_len['0'] = len(data_line.first_col_date) if len(data_line.first_col_date) > col_len['0'] else col_len['0']
worksheet.write(0, 1, data_line.second_col_date)
col_len['1'] = len(data_line.first_col_date) if len(data_line.first_col_date) > col_len['1'] else col_len['1']
worksheet.write(0, 2, data_line.three_col_date)
col_len['2'] = len(data_line.first_col_date) if len(data_line.first_col_date) > col_len['2'] else col_len['2']
for col_line, val in col_len.items():
worksheet5.col(int(col_line)).width = 256 * val