Tag: xlrd

从Excel单元格与python xlrd获取公式

我必须将algorithm从Excel工作表移植到Python代码,但是我必须从Excel文件中反向devisealgorithm 。 Excel工作表非常复杂,它包含许多单元格,其中有公式引用其他单元格(也可以包含公式或常量)。 我的想法是用python脚本分析单元格之间的依赖关系表,即: A1取决于B4,C5,E7公式:“= sqrt(B4)+ C5 * E7” A2取决于B5,C6公式:“= sin(B5)* C6” … xlrd python模块允许读取XLS工作簿,但目前我可以访问单元格的值 ,而不是公式 。 例如,用下面的代码,我可以简单地得到一个单元格的值: import xlrd #open the .xls file xlsname="test.xls" book = xlrd.open_workbook(xlsname) #build a dictionary of the names->sheets of the book sd={} for s in book.sheets(): sd[s.name]=s #obtain Sheet "Foglio 1" from sheet names dictionary sheet=sd["Foglio 1"] #print value […]

将Python Float转换为string而不会丢失精度

我正在维护一个Python脚本,它使用xlrd从Excel电子表格中检索值,然后用它们做各种事情。 电子表格中的一些单元格是高精度数字,它们必须保持原样。 当检索其中一个单元格的值时, xlrd给了我一个float例如0.38288746115497402。 但是,我需要在代码中稍后将此值转换为string。 做任何str(value)或unicode(value)将返回类似“0.382887461155”。 要求说这是不可接受的; 精度需要保留。 到目前为止,我已经尝试了几件事情,但没有成功。 第一个是使用string格式化的东西: data = "%.40s" % (value) data2 = "%.40r" % (value) 但是两者都产生相同的舍入数字“0.382887461155”。 在search到与在SO和其他地方在互联网上类似问题的人,一个共同的build议是使用Decimal类。 但是我不能改变数据给我的方式(除非有人知道让xlrd返回小数的秘密方法)。 当我尝试这样做时: data = Decimal(value) 我得到一个TypeError: Cannot convert float to Decimal. First convert the float to a string. TypeError: Cannot convert float to Decimal. First convert the float to a string. 但显然我不能将其转换为string,否则我将失去精度。 所以是的,我愿意提供任何build议 […]

使用XLRD包标识Excel工作表单元格颜色代码

我正在写一个python脚本来使用xlrd从excel表读取数据。 工作表中的几个单元格用不同的颜色突出显示,我想识别单元格的颜色代码。 有没有办法做到这一点? 一个例子将非常感激。