Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用openpyxl从一个xlsx截短、复制并粘贴到另一个xlsx:弄乱所有文本框、图表等_Python_Excel_Python 3.x_Openpyxl - Fatal编程技术网

Python 使用openpyxl从一个xlsx截短、复制并粘贴到另一个xlsx:弄乱所有文本框、图表等

Python 使用openpyxl从一个xlsx截短、复制并粘贴到另一个xlsx:弄乱所有文本框、图表等,python,excel,python-3.x,openpyxl,Python,Excel,Python 3.x,Openpyxl,我尝试在python 3.7.3中自动化每周必须执行的一些步骤。 基本上,这都是关于 截断xlsx-1 从xlsx-2复制到截断的xlsx-1 保存xlsx-1 一切进展顺利,但经过这些步骤后,我的xlsx-1就乱七八糟了。所有公式仍在运行,但所有文本框(其中包含或不包含单元格引用)都已消失,并且所有图表都具有不同的格式(例如,新边框) 为什么会发生这种情况,我可以做些什么来避免这些问题 打印(“请先键入日期(格式:YYMMDD)>”) last_wk=dt.date.today().iso

我尝试在python 3.7.3中自动化每周必须执行的一些步骤。 基本上,这都是关于

  • 截断xlsx-1
  • 从xlsx-2复制到截断的xlsx-1
  • 保存xlsx-1
一切进展顺利,但经过这些步骤后,我的xlsx-1就乱七八糟了。所有公式仍在运行,但所有文本框(其中包含或不包含单元格引用)都已消失,并且所有图表都具有不同的格式(例如,新边框)

为什么会发生这种情况,我可以做些什么来避免这些问题

打印(“请先键入日期(格式:YYMMDD)>”)
last_wk=dt.date.today().isocalendar()[1]-1
当前工作=最后工作+1
前缀=f“{input()}{str(last_wk)}”
前缀_final=f“{input()}{CW{str(curr_wk)}”
p_basic='C:\\Users\\Don_Andrej\\OneDrive-Shared Services GmbH\\Profile\\Desktop\\180816\u Start\\Reports'
p_export=os.path.join(p_basic,“_process_BE_NL_BRE_exports”,f“{prefix}”)
p_final=os.path.join(p_basic,“_process_BE_NL_BRE_exports”,f“{prefix_final}”)
files=[“离线与在线销售周”,
“制造商周”,
“BE_Online ShopSales_oldOrder”]
def truncate():
对于文件中的文件:
p=p_export+f“{file}.xlsm”
wb=opx.load\u工作簿(文件名=p)
ws=wb['rawData']
对于范围(1,ws.max_row+1)中的所有_行:
对于范围内的所有列(1,ws.max列+1):
ws.cell(行=所有行,列=所有列)。值=无
wb.save(p)
wb.close()
打印(f“{file}已被截断!”)
def copy_paste():
对于文件中的文件:
p_from=p_export+f“_export{file}.xlsx”
p_to=p_export+f“{file}.xlsx”
wb_from=opx.load_工作簿(文件名=p_from)
ws_from=wb_from['Sheet1']
wb_to=opx.load_工作簿(文件名=p_to)
ws_to=wb_to['rawData']
对于范围内的所有行(1,ws\u from.max\u row+1):
对于范围内的所有列(1,ws_from.max_列+1):
ws-to.cell(行=所有行,列=所有列)。value=ws-from.cell(行=所有行,列=所有列)。value
wb_to.save(p_to)
wb_to.close()
wb_from.close()
打印(f“导出已复制到{file}”)
截断()
复制粘贴()