python - 截断,从一个 xlsx 复制并使用 openpyxl 粘贴到另一个:弄乱所有文本框、图表等
问题描述
我尝试在 python 3.7.3 中自动化我每周必须执行的一些步骤。基本上,这都是关于
- 截断 xlsx-1
- 从 xlsx-2 复制到截断的 xlsx-1
- 保存 xlsx-1
一切顺利,但在这些步骤之后,我的 xlsx-1 都搞砸了。所有公式仍在工作,但所有文本框(其中有和没有单元格引用)都消失了,所有图表都有不同的格式(例如新边框)。
为什么会发生这种情况,我可以做些什么来避免这些问题?
print("Please type in the date first (format: YYMMDD) > ")
last_wk = dt.date.today().isocalendar()[1] - 1
curr_wk = last_wk + 1
prefix = f"{input()}_CW{str(last_wk)}"
prefix_final = f"{input()}_CW{str(curr_wk)}"
p_basic = 'C:\\Users\\Don_Andrej\\OneDrive - Shared Services GmbH\\Profile\\Desktop\\180816_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 = ['Offline vs Online sales week',
'Gefactureerd week',
'BE_onlineshopSales_oldOrder']
def truncate():
for file in files:
p = p_export + f"_{file}.xlsm"
wb = opx.load_workbook(filename = p)
ws = wb['rawData']
for all_row in range(1, ws.max_row + 1):
for all_col in range(1, ws.max_column + 1):
ws.cell(row = all_row, column = all_col).value = None
wb.save(p)
wb.close()
print(f"{file} has been truncated!")
def copy_paste():
for file in files:
p_from = p_export + f"_EXPORT_{file}.xlsx"
p_to = p_export + f"_{file}.xlsx"
wb_from = opx.load_workbook(filename = p_from)
ws_from = wb_from['Sheet1']
wb_to = opx.load_workbook(filename = p_to)
ws_to = wb_to['rawData']
for all_row in range(1, ws_from.max_row + 1):
for all_col in range(1, ws_from.max_column + 1):
ws_to.cell(row = all_row, column = all_col).value = ws_from.cell(row = all_row, column = all_col).value
wb_to.save(p_to)
wb_to.close()
wb_from.close()
print(f"The export were copied into {file}")
truncate()
copy_paste()
解决方案
推荐阅读
- express - Chai 测试一个猫鼬 Promise
- javascript - 我正在使用 this.$router.push 以编程方式导航,但是,我被发送到错误的 URL,我不知道为什么
- javascript - After creating an array of anchors using netui repeater how do I call a method which will take the anchor id and execute a query
- javascript - 未捕获的 DOMException:无法在“CustomElementRegistry”上执行“定义”:此构造函数已与此注册表一起使用
- php - 在 PHP 中调整 base64_string 图像的大小
- sql - How to group records by hours considering start date and end date
- c# - 从 Azure 函数中取出 Azure 存储队列
- python - Why sort_index removes time portion of datetime columns?
- python - ValueError:发现样本数量不一致的输入变量:[3058, 3777]
- javascript - Why is this object's position NaN?