首页 > 解决方案 > 如何在一个工作簿中复制工作表并仅将值粘贴到新工作簿中?

问题描述

我有一个包含很多公式的 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')

该代码用于将数据复制到新工作簿中,但它正在粘贴公式。我只想要价值观。

标签: pythonexcelopenpyxl

解决方案


根据我之前的评论:

这来自OpenPyxl 文档

openpyxl.reader.excel.load_workbook子模块上说明的地方,查看data_only参数:

  • data_only (bool) - 控制带有公式的单元格是否具有公式(默认)或 Excel 上次读取工作表时存储的值

默认值是Formulas您想要的值。因此将其设置为 true:

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

应该有帮助:)

在此处输入图像描述


推荐阅读