这是我昨天在 python-excel google-group 上对同一问题给出的答案。
[背景:我是xlrd的作者/维护者和xlwt的维护者]
xlrd 和 xlwt 都不包含公式评估引擎。这与其他免费(在任何意义上)并用解释性语言编写的软件包是相同的。这已记录在教程中,您可以通过以下方式下载http://www.python-excel.org http://www.python-excel.org...参见第 17 页和第 36 页。
如果您将脚本分成两部分,则执行第一部分,使用 Excel/OOo calc/Gnumeric 打开结果 XLS 文件,[可能需要在此处按 F9 重新计算],再次保存,执行第二部分脚本: xlrd 将显示结果。
其他可能性:
(1) 在 gnumeric 邮件列表上询问是否可以以编程方式将 gnumeric 驱动到以下范围:打开命名的 XLS 文件,[重新]计算所有公式,保存为命名的 XLS 文件(包括重新计算的公式结果 - 它有必要强调这一点,因为我上次询问时,本机 gnumeric 文件格式不包含计算的公式结果)。
(2) 你可以对 Openoffice.org 的 calc 程序提出同样的问题,也许在 news:comp.lang.python 和/或 www.stackoverflow.com 上......它有一组名为“PyUNO”的 API;上次我查看时,大多数人都放弃了费力浏览和理解大量文档的尝试。如果有任何更好的消息,我肯定会在 Python+电子表格世界中得到感激。
(3)“LogNormal”(我猜你指的是 LOGNORMDIST 和/或 LOGINV)和“StdDev”几乎不是 Excel 特有的。你可以用Python计算你自己的结果; xlwt 需要进行增强,以允许调用者为公式单元格提供结果值,而不是像您注意到的那样插入不变的零长度字符串。
(4) 告诉我们您的更高层次的目标……然后我们也许能够提出其他建议。
这个“非常关键的项目”是学术/慈善/商业企业吗?您是否考虑过解析器一号(http://www.resolversystems.com/products/resolver-one/ http://www.resolversystems.com/products/resolver-one/)? AFAIK,他们提供折扣,而且他们的产品非常便宜,每个许可证大约 100 美元。