Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数据报表,比如业务质量、资源利用、安全扫描等报表,同时也是应用系统常见的文件导出格式,以便数据使用人员做进一步加工处理。
本节主要讲述利用Python操作Excel的模块XIsxWriter ( htps://xlsxwriterreadthedocs.org),可以操作多个工作表的文字、数字、公式、图表等。XIsxWriter 模块具有以下功能:
100%兼容的Excel XLSX文件,支持Excel 2003、Excel 2007等版本;
支持所有Excel单元格数据格式;
单元格合并、批注、自动筛选、丰富多格式字符串等;
支持工作表PNG、JPEG图像,自定义图表;
内存优化模式支持写入大文件。
1、XlsxWriter模块的安装方法如下:
Pip install xlsxwriter
2.基本操作
import xlsxwriter
workbook = xlsxwriter.Workbook('a.xlsx') #创建一个名字为a的表格文件
worksheek = workbook.add_worksheet() #创建一个为默认名字的sheet工作区
worksheek.set_column('A:D',20) #将从A到D的表格变为20size
block = workbook.add_format({'bold':True,
'font_size': 10,
'color':'blue'}) #创建个名为block的样式:加粗,大小为10,颜色为blue
worksheek.write('A1','Hello',block) #在单元格A1 写 'Hello' 并赋予block的样式
worksheek.write('A2','World') #在单元格A2 写 'World'
worksheek.write('A3','!')
worksheek.write(4,0,25) #在5行第一列 写入 25
worksheek.write(4,1,26) #在5行第二列 写入 26
worksheek.write(4,2,'=SUM(A5:B5)') #在第5行第三列写入 上面两数的相加结果
worksheek.insert_image('D1','a.jpg') #在E2加入图片
workbook.close()
结果展示:
Chart类实现在XlsxWriter模块中图表组件的基类,支持的图表类型包括面积、条形图、 柱形图、折线图、饼图、散点图、股票和雷达等。
它主要是workbook中的add_chart方法创建,通过type指定类型,语句如下:
chart = workbook.add_chart({'type':'column'}) # 创建一个 column (柱形)图表
更多图表类型说明:
area: 创建一个面积样式的图表;
bar: 创建一个条形样式的图表;
column: 创建一个柱形样式的图表;
line: 创建一个线条样式的图表;
pie: 创建一个饼图样式的图表;
scatter: 创建一个散点样式的图表;
stock: 创建一个股票样式的图表;
radar: 创建一个雷达样式的图表。
然后再通过Worksheet (工作表)的insert_chart()方法插人到指定位置,语句如下:
worksheet.insert_chart('A4',chart)
下面介绍chart类的几个常用方法:
chart.add_series (options)方法
它的作用为添加一个数据系列到图表,参数options (diet 类型)设置图表系列选项的字典,操作示例如下:
chart.add_series({
'categories':'=Sheet1!$A$1:$G$1',
'values': '=Sheet1!$A$1:$G$1',
'line': {'color':'black'},
})
add_series方法最常用的三个选项为categories、values、line,
其中categories作为是设置图表类别标签范围;
values为设置图表数据范围;
line为设置图表线条属性,包括颜色、 宽度等。
其他常用方法及示例。
set_x_axis(options)方法,设置图表X轴选项,示例代码如下
chart.set_x_axis({
'name': 'Earnings per Quarter', # 设置 X 轴标题名称
'name_font':{ 'size':14,'bold':True}, # 设置 X 轴标题字体属性
'num_font' :{ 'italic': True }, # 设置 X 轴数字字体属性
}
Set_size(options)方法,设置图表大小:
chart.set_size({ 'width':577,'height':287})其中width为宽度,height为高度。
Set_title(options)方法,设置图表标题,
chart.set_title({'name':u'业务流量周报图表'})
set_style(style_id)方法,设置图表样式,style_id为不同数字则代表不同样式,
chart.set_style(37),
set_table(options)方法,设置X轴为数据表格形式,如chart.set_table()