python_xlsxwriter模块

  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.效果图

猜你喜欢

转载自www.cnblogs.com/yinjia/p/9398319.html