python - Openpyxl 无法读取引用它之前写入的单元格的函数值
问题描述
我对 openpyxl 包有疑问。为了说明这个问题,我准备了一个简单的例子。
我有一个 Excel 文件,其中只包含单元格=A1
中的公式B1
。我想(1)将值 123 写入 cell A1
,(2)保存工作簿,(3)再次打开它并(4)读取 cell 的内容B1
。而不是123
我得到None
. 您可以在下面找到一个简单的代码,(我希望)应该像刚才描述的那样做。谁能看到,我做错了什么?
import openpyxl
# open file and select sheet
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
# write value into cell A1
sheet['A1'].value = 123
# save the file and close it
wb.save('example.xlsx')
wb.close()
# open the file again and select sheet
wb = openpyxl.load_workbook('example.xlsx', data_only=True)
sheet = wb.get_sheet_by_name('Sheet1')
# read value from cell containing referece to cell A1 => why it returns None?
print(sheet['B1'].value)
# close the file
wb.close()
很多谢谢,
麦基
PS:我在 Win7 上使用 python 3.5.5、openpyxl 2.5.6 和 MS Office 2013。
解决方案
openpyxl 不会也不会计算公式的结果,因此公式 B1=A1 只会在您打开 excel 工作表或使用另一个计算它的程序时计算。我相信还有其他库可以提供帮助,例如 pycel。
推荐阅读
- azure - Microsoft Azure DevOps:向一个项目中的用户授予对另一组中的董事会的 RW 权限?
- javascript - 如何使用 wix corvid 将循环数据连接到 pdfgeneratorapi?
- python - Python ThreadPoolExecutor 等待任务完成的时间不够长
- flutter - 如何在我的 Flutter 应用中解决这个 UI 问题?
- twilio - Twilio:循环 5-6 个数字,直到有人接听
- c# - 将值转换为具有最大值的角度
- php - 如何使用 PHP 在页面加载时更改 URL 参数?
- java - 带有导航视图android的导航组件
- c# - C# 获取请求标头并返回实体的排序列表
- node.js - 如何在上传时使用 multer 压缩图像大小?