1.workbook类
- add_worksheet
用于添加一个新的工作表,sheetname为工作表名称,默认是sheet1,例如:
1 worksheet = workbook.add_worksheet() 2 worksheet = workbook.add_worksheet('测试详情')
- add_format
用于在工作表中创建一个新的格式对象来格式化单元格
1 bold = workbook.add_format({ 2 'bold': 1, #字体加粗 3 'fg_color': 'green', #单元格背景颜色 4 'align': 'center', #对齐方式 5 'valign': 'vcenter', #字体对齐方式 6 })
- add_chart
用于在工作表中创建一个图表对象,内部通过insert_chart()方法来实现,参数为dict类型。
chart1 = workbook.add_chart({'type':'column'}) #选择竖状图
2.chart类
chart类实图表组件,通过workbook的add_chart方法创建。
chart1 = workbook.add_chart({'type':'column'}) #选择竖状图
常见的图表样式如下:
area:面积样式的图表
bar:条形图
column:柱状图
line:线条样式的图表
pie:饼形图
scatter:散点图
stock:股票样式的图表
radar:雷达样式的图表
3.实例
1 #!/usr/bin/env python 2 # _*_ coding:utf-8 _*_ 3 __author__ = 'Yinjia' 4 5 import xlsxwriter 6 7 #生成.xlsx文件 8 workbook = xlsxwriter.Workbook('test_table.xlsx') 9 #工作页 10 worksheet = workbook.add_worksheet('测试详情') 11 worksheet.set_tab_color('red') 12 13 #准备测试数据 14 bold = workbook.add_format({ 15 'bold': 1, #字体加粗 16 'fg_color': 'green', #单元格背景颜色 17 'align': 'center', #对齐方式 18 'valign': 'vcenter', #字体对齐方式 19 }) 20 headings = ['Number','Batch1','Batch2'] #设置表头 21 data = [ 22 [2,3,4,5,6,7], 23 [10,40,50,20,10,50], 24 [30,60,70,50,40,30], 25 ] 26 27 #插入数据 28 worksheet.write_row('A1',headings,bold) #行插入操作 29 worksheet.write_column('A2',data[0]) #列插入操作 30 worksheet.write_column('B2',data[1]) 31 worksheet.write_column('C2',data[2]) 32 33 #插入直方图1 34 chart1 = workbook.add_chart({'type':'column'}) #选择竖状图 35 chart1.add_series({ 36 'name': '=测试详情!$B$1', 37 'categories': '=测试详情!$A$2:$A$7', 38 'values': '=测试详情!$B$2:$B$7',#Y轴值 39 'data_labels': {'value': True} #显示数字,就是直方图上面的数字,默认不显示 40 }) 41 42 #注意上面写法 '=Sheet1!$B$2:$B$7' Sheet1是指定工作页, $A$2:$A$7是从A2到A7数据, 43 #插入直方图2 44 chart1.add_series({ 45 'name': '=测试详情!$B$1', 46 'categories': '=测试详情!$A$2:$A$7', 47 'values': '=测试详情!$C$2:$C$7',#Y轴值 48 'data_labels': {'value': True} 49 }) 50 51 chart1.set_title({'name': 'Chart with Data Table'}) #直方图标题 52 chart1.set_x_axis({'name': 'Test number'}) #X轴描述 53 chart1.set_y_axis({'name': 'Sample length (mm)'})#Y轴描述 54 chart1.set_table() #设置x轴为数据表格式 55 chart1.set_style(3)#直方图类型 56 worksheet.insert_chart('D2', chart1, {'x_offset': 25, 'y_offset': 10}) #直方图插入到 D2位置 57 workbook.close()
4.效果图