使用python对工作簿每个sheet表进行数据可视化展示(本案例是从第2个sheet开始循环读取也就是索引为1的表)
# 导入相关模块
from pyecharts.charts import Bar from pyecharts import options as opts from pyecharts.charts import Line import os
# excel处理模块 读:xlrd(read),写:xlrd(write)
import xlrd
# 读取excel文件
data = xlrd.open_workbook(r'D:\xlsx\db\xxx统计分析.xlsx')
# 通过索引读取sheet表
# table = data.sheets()[1]
# 获取所有sheet表名
sheet_list = data.sheet_names()
for x in range(1,len(sheet_list)): table = data.sheets()[x] # 通过表名读取 # table = data.sheet_by_name('华中-xxx有限公司') # 打印表的行数,列数 # print(table.nrows,table.ncols) # 存放时间,超速,振动,负载,点检,离位列表 time_list = [] cs_list = [] zd_list = [] fz_list = [] dj_list = [] lw_list = []
# 将需要展示的数据行和列加入列表
for i in range(1,table.nrows): # x轴坐标数据 time_list.append(table.row_values(i)[0]) # y轴坐标数据 cs_list.append(table.row_values(i)[3]) zd_list.append(table.row_values(i)[4]) fz_list.append(table.row_values(i)[5]) dj_list.append(table.row_values(i)[6]) lw_list.append(table.row_values(i)[7])
# 折线图
line = Line() line.add_xaxis(time_list) line.add_yaxis('超速',cs_list) line.add_yaxis('振动',zd_list) line.add_yaxis('负载',fz_list) line.add_yaxis('点检',dj_list) line.add_yaxis('离位',lw_list) # line.set_colors(['red','green','blue','black','fuscia'])
# 设置图表标题及子标题
line.set_global_opts(opts.TitleOpts(title="华中", subtitle=sheet_list[x])) if sheet_list[x]: line.render(sheet_list[x]) os.replace(sheet_list[x],sheet_list[x] + '.html')
# 展示效果