鱼C论坛

 找回密码
 立即注册
查看: 2489|回复: 4

[技术交流] 关于openpyxl的data_only问题

[复制链接]
发表于 2019-8-16 10:52:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jinlovelive 于 2019-8-16 10:55 编辑

如题
想把一个表格中的公式的结果数值写入另一个表格中,选择data_only读取的数据为None。
查了下,说是未进行数值计算,所以公式的值为None。但是我看我的表内数据都是计算好的啊。
请问如何解决啊 ,部分代码如下
wb_jfs = load_workbook(path_jfs,data_only=True)
    wb_lshz = load_workbook(path_lshz)
    ws_jfs = wb_jfs[day_str]
    ws_lshz1 = wb_lshz['系统数据']
    #ws_lshz2 = wb_lshz['当天数据']
    print(ws_jfs.cell(24,2).value)
    for i in range(33,44):
        ws_lshz1.cell(i,3+(day_int-1)*8).value      = ws_jfs.cell(i-9,2).value
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-26 10:21:49 | 显示全部楼层
这段代码实现了这样一个功能:你本地有xlsx1,xlsx2 两个文件,你在内存新建了两个表:ws_jfs用来存放xlsx1中的day_str表格,ws_lshz1用来存放xlsx2中的'系统数据'表格
最后你把内存中ws_jfs表格某些单元格的数据,,赋值给ws_lshz1表格的某些单元格
反正这段代码就没有做计算处理,就是简单的移动数据的操作

那么问题可能就是ws_lshz1表格的数据是改变了,但是xlsx2中的“系统数据”表格里的数据还是没有变啊。要不你就是把完整的代码贴出来吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-27 13:53:23 | 显示全部楼层
傻纸 发表于 2019-8-26 10:21
这段代码实现了这样一个功能:你本地有xlsx1,xlsx2 两个文件,你在内存新建了两个表:ws_jfs用来存放xlsx1 ...

完整代码不贴了,也没啥意义。现在openpyxl有个问题就是读取表格,写入数据,但是不会执行公式得到结果,然后其他表格读取这个表的公式数据时只能读取公式,无法获得结果。之前的表格因为有多个日期的数据,无法以data_only保存(之后几天的数据会丢公式)。现在我只能手动打开一次表格,让其自动计算数据然后再执行程序。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-27 16:14:29 | 显示全部楼层
好吧。。。可能我没了解你的真正的困难之处。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-18 15:11:53 | 显示全部楼层
我目前也遇到这个问题了,想请问下现在你这个问题解决了吗?除了手动打开的方式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 11:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表