from service.IFileService import IFileService from entity.BilibiliVideo import BilibiliVideo from tool import tttt class ExcelService(IFileService): def __init__(self): """ 此处增加对excel的高级参数(若有) """ pass def save(self, filePath, videoList): tttt.write_to_excel(videoList,filePath) tttt.calculate_ratio_and_update(filePath, 'Sheet') import openpyxl from openpyxl.chart import ScatterChart, BarChart, AreaChart, Reference # 读取Excel文件 wb = openpyxl.load_workbook('bilibili_videos.xlsx') ws = wb.active # 创建柱状图1 bar_chart1 = BarChart() bar_chart1.title = "观众对于视频的认可度" bar_chart1.y_axis.title = "Data" bar_chart1.x_axis.title = "Index" # 设置柱状图1数据 bar_data1 = Reference(ws, min_col=17, min_row=2, max_row=ws.max_row) bar_categories1 = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row) bar_chart1.add_data(bar_data1, titles_from_data=True) bar_chart1.set_categories(bar_categories1) # 添加柱状图1到工作表 ws.add_chart(bar_chart1, "V1") # 创建柱状图 bar_chart = BarChart() bar_chart.title = "收益" bar_chart.y_axis.title = "Data" bar_chart.x_axis.title = "Index" # 设置柱状图数据 bar_data = Reference(ws, min_col=18, min_row=2, max_row=ws.max_row) bar_categories = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row) bar_chart.add_data(bar_data, titles_from_data=True) bar_chart.set_categories(bar_categories) # 添加柱状图到工作表 ws.add_chart(bar_chart, "AD1") # 创建面积图 area_chart = AreaChart() area_chart.title = "视频实用性" area_chart.y_axis.title = "Data" area_chart.x_axis.title = "Index" # 设置面积图数据 area_data = Reference(ws, min_col=19, min_row=2, max_row=ws.max_row) area_categories = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row) area_chart.add_data(area_data, titles_from_data=True) area_chart.set_categories(area_categories) # 添加面积图到工作表 ws.add_chart(area_chart, "AL1") # 创建柱状图 bar_chart_2 = BarChart() bar_chart_2.title = "视频惊艳程度" bar_chart_2.y_axis.title = "Data" bar_chart_2.x_axis.title = "Index" # 设置柱状图数据 bar_data_2 = Reference(ws, min_col=20, min_row=2, max_row=ws.max_row) bar_categories_2 = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row) bar_chart_2.add_data(bar_data_2, titles_from_data=True) bar_chart_2.set_categories(bar_categories_2) # 添加柱状图到工作表 ws.add_chart(bar_chart_2, "AT1") # 创建柱状图 bar_chart_3 = BarChart() bar_chart_3.title = "视频的互动性" bar_chart_3.y_axis.title = "Data" bar_chart_3.x_axis.title = "Index" # 设置柱状图数据 bar_data_3 = Reference(ws, min_col=21, min_row=2, max_row=ws.max_row) bar_categories_3 = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row) bar_chart_3.add_data(bar_data_3, titles_from_data=True) bar_chart_3.set_categories(bar_categories_3) # 添加柱状图到工作表 ws.add_chart(bar_chart_3, "BB1") # 保存Excel文件 wb.save('bilibili_videos_with_charts.xlsx') texts = [ "approve", "money", "practical", "Stunning", "interaction" ] tttt.write_english_texts(filePath, 'Sheet', texts)