'''批量插入图表'''
'''
需求描述:E:\PycharmProjects\OJ\simple\项目3 下的所有文件中的所有工作表创建条形图
1、读取每一个工作薄里面的工作表名称
2、读取每一个工作表
3、创建条形图
'''
import openpyxl
import os
from openpyxl.chart import BarChart, Reference
dirpath = os.path.join(os.getcwd(), '项目3')
for filepath in os.listdir(dirpath): # 遍历目录下的所有文件
print(filepath) # LLT-10月.xlsx
ex_file_name = os.path.join(os.getcwd(), '项目3',filepath)
print(ex_file_name) # E:\PycharmProjects\OJ\simple\项目3\LLT-10月.xlsx
wb = openpyxl.load_workbook(ex_file_name, data_only=True)
sheet_names = wb.get_sheet_names()
print(sheet_names) # ['1001', '1002']
for sheet_name in sheet_names:
ws = wb.get_sheet_by_name(sheet_name)
bc = BarChart()
bc.title = filepath.split('.')[0] + '-' + sheet_name
bc.x_axis.title = '代码仓'
bc.y_axis.title = '白盒覆盖率'
data = Reference(ws, min_row=1, min_col=2, max_row=56, max_col=3)
lable = Reference(ws, min_col=1, min_row=2, max_row=56)
bc.add_data(data, titles_from_data=True)
bc.set_categories(lable)
ws.add_chart(bc, 'E1')
wb.save(ex_file_name)