librecalc Python读取公式,而不是单元格的值
环境:librecalc 25.2.3.2 x86,Windows 11 Pro 25h2,Python 3.10.17(随LibreOffice一起提供,并从libreoffice\program运行)
librecalc电子表格在单元格 [I1] 中有一个公式。
==INDIRECT(CONCATENATE("A";MATCH(0;D6:D163;-1)+12))
得到的单元格值是D 列中下一个空单元格的地址。该地址将作为写入传感器数据时使用的目标单元格地址,使用 sheet.set_cell_value_by_index(col,row)。
From a cmd line window, update_sensor_data.py 是运行的。
import os
import sys
import pyoocalc
book = pyoocalc.Document()
book.open_document("sensor_data.ods")
sheet=book.sheets.sheet("volts")
print(sheet.cell_value_by_index(8,0)
输出的值是单元格公式,而不是期望的结果单元格值:数字9。
可以访问多个工作表。向单元格写入字符串和数值是可行的。保存更新后的工作簿也可以。
我看过类似的问题,查看过pyoocalc的代码,以及其他资料。
如何读取单元格的值?
解决方案
我找到了 cell_value_by_index 的源代码,看起来你可以尝试使用第三个参数
.cell_value_by_index(8,0, "VALUE")
.cell_value_by_index(8,0, "FORMULA")
.cell_value_by_index(8,0, "STRING")
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。