import xlsxwriter
workbook = xlsxwriter.Workbook('chart_data_table.xlsx') # 可以生成.xls文件但是会报错
worksheet = workbook.add_worksheet('Sheet1') # 工作页
# 准备测试数据
bold = workbook.add_format({'bold': 1})
headings1 = ['报告人', 'bug数', 'aaaa']
data = [
['张三1', '张三2', '张三3', '张三4'],
[10, 40, 50, 0],
[30, 60, 70, 50],
['极高', '高', '一般', '低', '很低'],
[1, 3, 13, 2, 1],
]
headings2 = ['优先级', 'bug数']
# 插入数据
worksheet.write_row('A1', headings1, bold) # 行插入操作 注意这里的'A1'
worksheet.write_column('A2', data[0]) # 列插入操作 注意这里的'A2'
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
worksheet.write_row('A9', headings2, bold)
worksheet.write_column('A10', data[3])
worksheet.write_column('B10', data[4])
# 插入直方图1
chart1 = workbook.add_chart({'type': 'column'}) # 选择 直方图 'column'
chart1.add_series({
'name': '=Sheet1!$B$1',
'categories': '=Sheet1!$A$2:$A$5', # X轴值(实在不知道怎么叫,就用XY轴表示)
'values': '=Sheet1!$B$2:$B$5', # Y轴值
'data_labels': {'value': True} # 显示数字,就是直方图上面的数字,默认不显示
})
# 注意上面写法 '=Sheet1!$B$2:$B$7' Sheet1是指定工作页, $A$2:$A$7是从A2到A7数据,熟悉excel朋友应该一眼就能认得出来
# 插入直方图2
chart2 = workbook.add_chart({'type': 'column'})
chart2.add_series({
'name': '=Sheet1!$B$9',
'categories': '=Sheet1!$A$10:$A$14',
'values': '=Sheet1!$B$10:$B$14',
'data_labels': {'value': True}
})
chart1.set_title({'name': 'Chart with Data Table'}) # 直方图标题
chart1.set_x_axis({'name': 'Test number'}) # X轴描述
chart1.set_y_axis({'name': 'Sample length (mm)'}) # Y轴描述
chart1.set_style(2)
chart2.set_title({'name': 'Chart with Data Table'}) # 直方图标题
chart2.set_x_axis({'name': 'Test number'}) # X轴描述
chart2.set_y_axis({'name': 'Sample length (mm)'}) # Y轴描述
chart2.set_style(2)# 直方图类型
worksheet.insert_chart('E2', chart1, {'x_offset': 25, 'y_offset': 10}) # 直方图插入到 D2位置
worksheet.insert_chart('E20', chart2, {'x_offset': 25, 'y_offset': 10})
workbook.close()
网友评论