Как скопировать лист в одну рабочую книгу и вставить только значения в новую рабочую книгу? - PullRequest
2 голосов
/ 26 сентября 2019

У меня есть книга Excel, в которой довольно много формул, и когда я пытаюсь загрузить книгу в базу данных, ячейки с формулами iferror появляются как пробелы, даже если это должна быть строка или число.Я новичок в Python, но я хочу создать файл Python, который будет читать на листе, и вставлять только значения в новую книгу.

Я пытался:

import openpyxl as xl

wb1 = xl.load_workbook('file1.xlsx')
ws1 = wb1["Sheet 1"]


wb2 = xl.load_workbook('file2.xlsx')
ws2 = wb2.create_sheet(ws1.title)

for row in ws1:
   for cell in row:
        ws2[cell.coordinate].value = cell.value

wb2.save('path')

Код работает для копирования данных в новую рабочую книгу, но он вставляет формулы.Я просто хочу ценности.

1 Ответ

1 голос
/ 26 сентября 2019

Согласно моему предыдущему комментарию:

Это происходит из OpenPyxl документов :

Где это указано в подмодуле openpyxl.reader.excel.load_workbook, глядя на data_onlyпараметр:

  • data_only (bool) - определяет, будет ли ячейка с формулами иметь формулу (по умолчанию) или значение, сохраненное в последний раз, когда Excel прочитал лист

По умолчанию Formulas, тогда как вы хотите значения.Так что установив его в true:

wb = xl.load_workbook('file1.xlsx', data_only=True)

Должно помочь:)

enter image description here

...