如何在一个工作簿中复制 sheet 并仅将值粘贴到新工作簿中?
How to copy a sheet in one workbook and paste just the values in a new workbook?
我有一个 excel 工作簿,其中有很多公式,当我尝试将工作簿上传到数据库时,带有 iferror 公式的单元格以空白出现,即使它应该是一个字符串或数字。我是 python 的新手,但我想创建一个 python 文件,它将在 sheet 中读取,并仅将值粘贴到新工作簿中。
我试过了:
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')
该代码可以将数据复制到新的工作簿中,但它是在粘贴公式。我只想要价值观。
根据我之前的评论:
这来自OpenPyxl docs:
在 openpyxl.reader.excel.load_workbook
子模块中说明的地方,查看 data_only
参数:
- data_only (bool) – 控制带有公式的单元格是否具有公式(默认)或上次存储的值 Excel 读取 sheet
默认值为 Formulas
,而您需要这些值。所以将其设置为 true:
wb = xl.load_workbook('file1.xlsx', data_only=True)
应该有帮助:)
我有一个 excel 工作簿,其中有很多公式,当我尝试将工作簿上传到数据库时,带有 iferror 公式的单元格以空白出现,即使它应该是一个字符串或数字。我是 python 的新手,但我想创建一个 python 文件,它将在 sheet 中读取,并仅将值粘贴到新工作簿中。
我试过了:
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')
该代码可以将数据复制到新的工作簿中,但它是在粘贴公式。我只想要价值观。
根据我之前的评论:
这来自OpenPyxl docs:
在 openpyxl.reader.excel.load_workbook
子模块中说明的地方,查看 data_only
参数:
- data_only (bool) – 控制带有公式的单元格是否具有公式(默认)或上次存储的值 Excel 读取 sheet
默认值为 Formulas
,而您需要这些值。所以将其设置为 true:
wb = xl.load_workbook('file1.xlsx', data_only=True)
应该有帮助:)