У меня есть рабочая тетрадь с именем 1. Я хочу скопировать некоторые столбцы из листа № 1 и немного изменить порядок столбцов. Сначала я создаю новый лист с именем «Лист №2». Я могу копировать и вставлять с листа № 1 на лист № 2, но я нахожу openpyxl
копирует формулы точно как есть, поэтому у меня есть проблема. Например, столбец O
на листе № 1 имеет некоторую формулу, например:
O3 = (M3 * 1) + (N3 * 1)
Переместить столбецM
на листе № 1 в столбец H на листе № 2 и переместите столбец N
на листе № 1 в столбец I на листе № 2. Когда я перемещаю столбец O на листе № 1 в столбец M
на листе № 2, у меня возникают проблемы. Во-первых, столбец M
в формуле листа № 2 по-прежнему:
M3 = (M3 * 1) + (N3 * 1)
У меня есть круговая ссылкапроблема, так как я пытаюсь использовать себя, чтобы рассчитать себя. Во-вторых, если я переместлю столбец O
на листе № 1 в столбец J
на листе № 2, у меня не будет этой проблемы циклической ссылки, но моя формула все еще не работает.
Я используюследующий способ копирования и вставки:
for i in range(0, 1000):
sheet_#2.cell(row=i,column=12).value = sheet_#1.cell(row=i,column=14).value
Я пытался data_only
с true
и false
, когда я звоню load_workbook
, следующим образом.
my_workbook = openpyxl.load_workbook(args.input_file, data_only=False)
Ни то, ни другое не работает для меня. True
получает все нули на листе № 1 и листе № 2. False
возвращает мне проблему циклической ссылки, как описано выше.
Есть ли способ использовать пакет openpyxl
для решения моей проблемы? Я думаю, что до тех пор, пока при копировании и вставке можно добавить имя листа для указания ячеек в формуле, моя проблема будет решена примерно так:
M3 = ("Лист № 1"M3 * 1) + («Лист № 1» N3 * 1)
Если openpyxl
не выполняет работу, есть ли лучший пакет для решения этой проблемы? pandas
?