学习python自动化运维的第五天
我回来了,继续学习python的自动化运维,今天主要的学习内容为,通过python对excel表格进行编辑(非pandas),可以通过平时操作excel的思维对表格进行处理,以及生成图表等等。因为个人excel学的并不怎么样,同时考虑到了自动化,这部分内容确实挺有趣的,一起来看看吧。
以下代码块主要讲的都是xlsxwriter这个模块,希望可以帮助到有需要的朋友。代码块之间以空行分开,需要的解锁对应的代码块即可正常使用。
# coding: utf-8
"""python自动化运维,学习的第五天"""
"""
xlsxwriter模块的学习
这个模块主要讲的是通过python编辑
excel表格,有点类似与pandas和
matplotlib库的结合,直接有类似于
excel的功能。
"""
# #模块常用方法说明
# import xlsxwriter
# workbook = xlsxwriter.Workbook("./excel/demol.xlsx") # 创建一个Excel文件
# worksheet = workbook.add_worksheet(name="测试") # 创建一个工作表
# worksheet.set_column("A:A",20) # 设置第一列(A列)的列宽
# bold = workbook.add_format({"bold":True}) # 设置一种单元格格式,字体加粗
# worksheet.set_row(0,40,bold) # 将第一行的高度设置为40像素
# worksheet.set_row(10,None,None,{"hidden":True}) # 隐藏第十行单元格
# worksheet.write("A1","hello") # 向A1单元格写入内容
# worksheet.write("A2","world",bold) # 写入内容并设置单元格格式
# worksheet.write("B2","中文测试",bold) # 设置中文内容
# worksheet.write(2,0,35) # 坐标的方式写入单元格(A3单元格)
# worksheet.write(3,0,35.5)
# worksheet.write(4,0,"=SUM(A3:A4)") # 设置求和公式以及求和区间
# worksheet.insert_image("B5","./img/photo1.png") # 向单元格插入图片
# worksheet.write_boolean("A6",True) # 添加布尔类型数据
# worksheet.write_url("A7","ftp://www.python.org/") # 添加超链接
# chart = workbook.add_chart({"type":"column"}) # 创建一个柱形图
# '''
# 图形样式与名字对应关系
# area:面积样式图表
# bar:条形样式图表
# column:柱形样式图表
# line:线形样式图表
# pie:饼形样式图表
# scatter:散点形样式图表
# stock:股票形样式图表
# radar:雷达形样式图表
# '''
# chart.set_size({"width":720,"height":576}) # 设置柱形图的宽高
# chart.set_title({"name":"柱形图"}) # 设置表标题
# chart.set_style(37) # 设置柱形图样式,不同的数字,不同的样式
# chart.set_table() # 设置X轴为数据表格样式
# chart.add_series({ # 添加一个类型的数据
# 'categories':'=测试!$A$1:$A$2', # 设置柱形图的标签范围
# 'values':'=测试!$A$3:$A$4', # 设置图表的数据范围
# 'line': {'color':'red'}, # 设置图标线条属性
# })
# chart.add_series({ # 再添加一个类型的数据
# "name":"数据",
# 'categories':'=测试!$A$1:$A$2', # 设置柱形图的标签范围
# 'values':'=测试!$A$3:$A$4', # 设置图表的数据范围
# 'line': {'color':'red'}, # 设置图标线条属性
# })
# chart.set_x_axis({ # 设置图表的X坐标轴
# "name":"X坐标名称", # 设置名称
# "name_font":{"size":14,"bold":True}, # 设置名称属性
# "num_font":{"italic":True} # 设置数字字体属性
# })
# worksheet.insert_chart("A22",chart) # 将柱形图插入指定的位置
# workbook.close() # 关闭文件
# # 示例,自动化业务流量报表周报
# import xlsxwriter
# workbook = xlsxwriter.Workbook("./excel/流量周报报表.xlsx")
# worksheet = workbook.add_worksheet()
# chart = workbook.add_chart({"type":"column"})
# title = ["业务名称","星期一","星期二","星期三","星期四","星期五","星期六","星期日","平均流量"]
# buname = ["新闻中心","业务官网","购物频道","体育频道","亲子频道"]
# data = [
# [150,152,158,149,155,145,148],
# [89,88,95,93,98,100,99],
# [201,200,198,175,170,198,195],
# [75,77,78,78,74,70,79],
# [88,85,87,90,93,88,84]
# ]
# format = workbook.add_format() # 定义format样式
# format.set_border(1)
# format_title = workbook.add_format()
# format_title.set_border(1)
# format_title.set_bg_color("#cccccc") # 设置背景颜色
# format_title.set_align("center") # 设置居中
# format_title.set_bold() # 设置字体加粗
# format_ave = workbook.add_format()
# format_ave.set_border(1)
# format_ave.set_num_format("0.00") # 设置单元格数字显示样式
# worksheet.write_row("A1",title,format_title)
# worksheet.write_column("A2",buname,format)
# for i in range(5):
# worksheet.write_row("B%s"%(i+2),data[i],format)
# for row in range(2,7):
# cur_row = str(row)
# worksheet.write_formula("I"+cur_row,
# "=AVERAGE(B" + cur_row + ":H" + cur_row + ")",format_ave)
# chart.add_series({
# "categories":"=Sheet1!$B1:$I$1",
# "values":"=Sheet1!$B$%s:$I$%s"%(cur_row,cur_row),
# "line":{"color":"black"},
# "name":"=Sheet1!$A$" + cur_row
# })
# chart.set_size({"width":577,"height":487})
# chart.set_title({"name":"业务流量周报图表"}) # 设置表标题
# chart.set_x_axis({ # 设置图表的X坐标轴
# "name":"星期", # 设置名称
# "name_font":{"size":14,"bold":True}, # 设置名称属性
# })
# chart.set_table() #设置表格坐标轴
# chart.set_y_axis({"name":"Mb/s"})
# worksheet.insert_chart("A8",chart)
# workbook.close()
以上内容为个人的学习内容,有的地方可能讲解不正确,希望发现的朋友给予指正,非常感谢。