在xlrd中,我如何获得原始单元格值?

时间:2012-11-09 21:57:03

标签: python excel xlrd

  

可能重复:
  Integers from excel files become floats?

我有一个包含1984的Excel电子表格,xlrd将其作为number类型进行处理,从而以float 1984.0的形式返回给我的值。我希望获得电子表格中显示的原始值,如字符串"1984"。我怎么得到这个?

4 个答案:

答案 0 :(得分:2)

因此在Excel内部,1984年存储为十进制数,因此1984.0是正确的。您可以更改数字格式以将其显示为1984.00或其他任何内容。

那么你是否在询问如何查询单元格格式以告诉数字格式是否为小数?如果是这样,您可能会考虑使用open_workbook

的formatting_info = True参数

sheet = open_workbook(             'types.xls',formatting_info =真             ).sheet_by_index(0)

您是否遇到过来自http://www.python-excel.org/的python-excel.pdf文档? 学习使用xlrd和xlwt是一个非常好的教程。不幸的是,他们说:

我们已经看到open_workbook有一个参数可以从Excel文件加载格式信息。完成后,所有格式信息都可用,但是如何显示它的详细信息超出了本教程的范围。

答案 1 :(得分:1)

如果cell.ctype == xlrd.XL_CELL_NUMBER

然后excel将1984存储为浮点数,你需要转换为python中的字符串

在excel中

=“1984”将是一个字符串 '1984将是一个字符串,注意'不显示 1984年是#

答案 2 :(得分:0)

唯一的数字是浮点数。附加到单元格的格式确定它是表示日期,小数还是整数。查找格式字符串,希望它能让您辨别该数字的显示方式。

答案 3 :(得分:-1)

使用字符串格式:

"%d" % mynumber
>>> "%d" % 1984.0
'1984'