Я пишу сценарий для автоматизации процесса, который требует обновления файла Excel, а затем построения графика на основе некоторых данных, присутствующих в файле Excel, а затем вставки графика в тот же файл Excel.Я использовал openpyxl для чтения и записи файла Excel, а затем использовал matplotlib для рисования графика для данных, а затем вставил график в тот же файл Excel.Данные в файле Excel обновляются один или два раза в неделю.Каждый раз, когда данные обновляются, мне нужно построить обновленный график и вставить график в файл Excel. Прямо сейчас мой скрипт автоматически обновляет значения в файле Excel и строит график для обновленных данных, но когда я вставляю график, он неперезаписывает предыдущий график, он каждый раз добавляет график над предыдущим графиком, из-за чего размер файла Excel будет увеличиваться.
Сейчас код, который я использую для построения и вставки графика в файл Excelis-
fig = plt.figure(figsize=(8,4))
PLT = fig.add_axes([0.04, 0.08, 0.79, 0.8])
plt.xlabel("WORKING WEEK (WW)",fontsize=7)
plt.ylabel("UTILIZATION [%]",fontsize=7)
plt.title("PATCH UTILIZATION",fontsize=9)
#PLT.subplots_adjust(right=0.8)
for i in range(len(p)):
PLT.plot(x,p[i],label = '%s'%row[0],marker="s",markersize=2)
PLT.legend(bbox_to_anchor=(1.21,1),borderaxespad=0,prop={'size':6})
PLT.tick_params(axis='both', which='major', labelsize=4)
plt.savefig("myplot.png",dpi=160)
wb=load_workbook('Excel.xlsm',read_only=False,keep_vba=True)
ws=wb['Patch Util']
img = openpyxl.drawing.image.Image("myplot.png")
img.anchor='D50'
ws.add_image(img)
wb.save('Excel.xlsm')
«x» и «p» - это два списка (p - это список списков), которые содержат данные и будут обновляться при обновлении данных в файле Excel.
Я хочу построить график и вставить его один раз.Теперь, когда данные обновляются, я хочу получить доступ к тому же графику из файла Excel, нанести его на обновленные данные и заново вставить его в файл Excel, вместо того, чтобы каждый раз вставлять новый график вверху предыдущего графика, чтобы размерфайла Excel остается прежним.
Будет очень полезно, если кто-нибудь сможет мне помочь с этим