真正的稳定,是自己不断成长,不断寻找新的空间。与其要稳定,不如开始拥抱这个变化的时代,让自己准备好。
【模块说明】:
XlsxWriter支持足够多的样式、图表,另外还支持函数,等各种DIY姿势。不足地方在于只能创建excel,无法去修改读取,只能是创建!所以一般都需要结合xlrd模块使用。
【材料】:
官方文档 http://xlsxwriter.readthedocs.io/contents.html
参考材料 http://www.cnblogs.com/fkissx/p/5617630.html
http://maoyao.blog.51cto.com/8253780/1772102,http://www.linuxyw.com/464.html
【方法】:
1、 workbook = xlsxwriter.Workbook('report.xlsx') #新建一个excel表格,参数为文件名称,可指定目录
举例:
xlsxwriter.Workbook('../report.xlsx') #上一级目录
xlsxwriter.Workbook('./report/report.xlsx') #当前目录的report文件夹下
2、worksheet = workbook.add_worksheet() #创建一个工作表对象
解释:默认创建的sheet名称是sheet1,依次迭代
举例:worksheet = workbook.add_worksheet(u'中文名称') #创建中文名称的sheet时需要加u‘’
3、workbook.add_format() #设置单元格的格式
解释:格式参数包括:fonts, colors, patterns, borders, alignment and number formatting
border:边框,align:对齐方式,bg_color:背景颜色,font_size:字体大小,bold:字体加粗
举例:
top = workbook.add_format({'border':1,'align':'center','bg_color':'cccccc','font_size':13,'bold':True})
blank = workbook.add_format({'border':1})
4、format.set_align('vcenter') #设置单元格垂直对齐
解释:修改单元格的样式
举例:top.set_bold(''),对应上图中的Method Name
5、worksheet.set_column("A:A", 15) #设置单一列宽度
解释:还可以拓展其他属性,具体参考官方文档
举例:
worksheet.set_column("A:B", 15)#设置区域列宽度
worksheet.set_column("0:1", 15) #依据索引更新列宽度
6、worksheet.set_row(1, 30) #设置单一行高度
解释:还可以拓展其他属性,具体参考官方文档
7、merge_format = workbook.add_format({'align': 'center'})
worksheet.merge_range('B3:D4', 'Merged Cells', merge_format)#合并单元格,设置格式与内容
解释:merge_range方法需要有add_format方法配合使用,来设置格式,没有则使用默认格式
举例:worksheet.merge_range('B3:D4', 'Merged Cells', merge_format)#合并B3到D4之间的区域为一个单元格,内容是'Merged Cells',格式是merge_format参数值。
8、chart=workbook.add_chart({'type': 'pie'}) #sheet中添加一个图标
解释:参数类型是字典,参数名称type,其值代表了制作一个什么类型的图表,如pie是饼状图,具体其他参数可参考官方说明文档
9、chart.add_series({ 'categories':u'=测试总况!$D$4:$D$5','values':u'=测试总况!$E$4:$E$5','line': {'color': 'red'},})#为图标设置数据源
解释:参数类型是字典,categories表示取值的区域:某个sheet下的相对区域,values表示取值:某个sheet下的相对区域,line表示图标的线条颜色
举例:
10、chart.set_title({'name': u'接口测试统计'}) # 图标标题
11、chart.set_style(10) #设置图标的样式,参数值1-48
12、worksheet.insert_chart('A9', chart, {'x_offset': 55, 'y_offset':30})#设置图标位置