python-XLWT和XLRD面临的问题-同时读写

我面临xlrd和xlwt的问题.粘贴示例代码
下面.

from xlwt import Workbook, Formula, XFStyle
import xlrd

book = Workbook()
sheet1 = book.add_sheet('Sheet 1')
myFontStyle = XFStyle()
myFontStyle.num_format_str = '0.00'
sheet1.write(0,0,10, myFontStyle)
sheet1.write(0,1,20, myFontStyle)
sheet1.write(1,0,Formula('AVERAGE(A1:B1)'), myFontStyle)
book.save('formula.xls')

wb = xlrd.open_workbook('formula.xls')
sh = wb.sheet_by_index(0)
for rownum in range(sh.nrows):
    print sh.row_values(rownum)

想法是将一些值写入Excel文件,具有一些excel
诸如LogNormal,StdDev等特定功能,并读取计算得出的
使用XLRD的值.

通过运行上面的代码,我得到以下结果是
不可取: –

[10.0, 20.0]
[u'', '']

理想情况下,我应该在第二行得到15.它写Excel
完美,当我打开它,但XLRD不返回结果.我是
坚持这个非常关键的项目.要求您友善
最早回应.

谢谢并恭祝安康
塔伦·帕斯里亚(Tarun Pasrija)

解决方法:

这是我昨天在python-excel google-group上对相同问题的回答.

[背景:我是xlrd的作者/维护者和xlwt的维护者]

xlrd和xlwt都不包含公式评估引擎.这与其他免费(以任何方式)并以解释语言编写的软件包相同.您可以通过http://www.python-excel.org下载该教程中的文档,请参见第17和36页.

如果将脚本分为两部分,请执行第一部分,使用Excel / OOo calc / Gnumeric打开结果XLS文件,[可能需要在此处单击F9进行重新计算],再次保存,执行第二部分脚本:xlrd将显示结果.

其他可能性:

(1)在gnumeric邮件列表上询问是否可以通过编程方式驱动gnumeric:在以下情况下:打开命名XLS文件,[重新]计算所有公式,另存为命名XLS文件(包括重新计算的公式结果-需要强调这一点,因为我上次询问时,本机数字文件格式未包括计算得出的公式结果).

(2)您可能会在news:comp.lang.python和/或www.*.com上询问有关Openoffice.org calc程序的相同问题……它具有一组称为“ PyUNO”的API;上次我看时,大多数人都放弃了尝试,以了解大量的文档.我肯定会在Python电子表格世界中感激收到任何更好的消息.

(3)“ LogNormal”(我认为您是指LOGNORMDIST和/或LOGINV)和“ StdDev”几乎不特定于Excel.您可以使用Python计算自己的结果;需要增加xlwt以允许调用方为Formula单元格提供结果值,而不是像您注意到的那样插入不变的零长度字符串.

(4)告诉我们您的更高目标……我们也许可以提出其他建议.

这个“非常关键的项目”是否在学术上/对于慈善机构/对于商业企业而言?您是否考虑过Resolver One(http://www.resolversystems.com/products/resolver-one/)? AFAIK会提供折扣,而且产品还是便宜的,每张许可证大约100美元.

上一篇:从Python轻松编写格式化的Excel:从Excel格式化开始,在Python中使用它,并从Python重新生成Excel


下一篇:python数据处理的一些基本操作(一)