使用 openpyxl 获取单元格值的显示字符串
Get displayed string for cell value with openpyxl
我正在使用 openpyxl
来处理 excel
.xlsx 文件。文件中的某些列包含不同数字类型的单元格。我可以从 Cell 对象中获取 number_type 和值,但是 找不到简单的方法来获取 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%'
和 u'2016\u5e741\u67081\u65e5'
这样的字符串?单元格可能是一些自定义单元格格式,所以我更喜欢通用的方式。
任何单元格的值都是 Python 等同于 Excel 类型。 openpyxl 是一个文件格式库,而不是像 Excel 这样的应用程序。因此,它只支持设置和读取数字格式,但不支持应用。也就是说,您可以根据规范轻松编写自己的函数来执行您想要的操作(创建 printf 类型格式)。
我正在使用 openpyxl
来处理 excel
.xlsx 文件。文件中的某些列包含不同数字类型的单元格。我可以从 Cell 对象中获取 number_type 和值,但是 找不到简单的方法来获取 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%'
和 u'2016\u5e741\u67081\u65e5'
这样的字符串?单元格可能是一些自定义单元格格式,所以我更喜欢通用的方式。
任何单元格的值都是 Python 等同于 Excel 类型。 openpyxl 是一个文件格式库,而不是像 Excel 这样的应用程序。因此,它只支持设置和读取数字格式,但不支持应用。也就是说,您可以根据规范轻松编写自己的函数来执行您想要的操作(创建 printf 类型格式)。