Я пытаюсь автоматизировать некоторые шаги, которые я должен делать каждую неделю в 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()