使用openpyxl获取单元格值的显示string

我使用的是openpyxl来处理excel .xlsx文件。 文件中的某些列包含不同数字types的单元格。 我可以从Cell对象中获取number_type和value,但找不到获取 string 的简单方法 。 我已经花了几个小时的文档和openpyxl的来源,但什么都没发现。

例如,我从ipython得到这个输出:

 In [6]: ws['D4'].value Out[6]: 0.02 In [7]: ws['D4'].data_type Out[7]: 'n' In [8]: ws['D4'].number_format Out[8]: '0.0%' In [9]: ws['D2'].number_format Out[9]: u'yyyy"\u5e74"m"\u6708"d"\u65e5";@' In [10]: ws['D2'].value Out[10]: 42370L 

我怎么能得到像'2%''2%'这样的string? 单元格可能是一些自定义单元格格式,所以我更喜欢一般的方式。

任何单元格的值都是Exceltypes的Python等价物。 openpyxl是一个文件格式的库,而不是象Excel这样的应用程序。 因此,它只支持设置和读取数字格式的能力,但不适用它们。 也就是说,你可以很容易地编写你自己的函数来根据规范做你想做的(创build一个printftypes的格式)。