Python xlrd 读取为字符串
我在从 xlrd 中的 Excel 读取特定单元格值时遇到困难。无论我正在读取什么值(日期值)都会转换为数字。我知道有解决方案可以将其转换为python日期格式,但是我可以直接读取xlrd中的字符串值吗?
I'm having difficulties in reading a particular cell value from Excel in xlrd. Whatever value I'm reading (date value) is getting converted to a number. I know there are solutions to convert it into a python date format, but can I read directly the string value in xlrd?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
xlrd 不会将日期转换为浮点数。 Excel 将日期存储为浮点数。
引用 xlrd 文档(向下滚动页面):
另请参阅 Cell 类 部分来了解关于单元格类型以及各种 工作表提取单元格类型(文本、数字、日期、布尔值等)的方法。
查看 python-excel.org 了解有关其他 Python Excel 包的信息。
xlrd does NOT convert dates to float. Excel stores dates as floats.
Quoting from the xlrd documentation (scroll down a page):
See also the section on the Cell class to learn about the type of cells, and the various Sheet methods which extract the type of a cell (text, number, date, boolean, etc).
Check out python-excel.org for info on other Python Excel packages.
好吧,正如您所说:
对于这个例子,XLS 是:
工作表 1:列表工作
表 2:颜色
well, as you say:
FOR THIS EXAMPLE THE XLS is:
sheet 1:listing
sheet 2:colors
Excel 在内部和 .xls 文件中将日期存储为数字,然后在显示时相应地设置它们的格式。因此,如果您使用 xlrd 天真地读取它们,您将得到数字或字符串。您应该做的是检查单元格的类型是什么,然后自己转换数字。使用 xlrd 的内置函数(例如 xldate_as_tuple())或您自己的函数。
请参阅此问题了解一些信息更多细节。
Excel stores dates as numbers both internally and in .xls files and then formats them accordingly when displaying. Thus, if you read them naively with xlrd, you will get either numbers or strings. What you should do is check what the type of a cell is and then convert the number yourself. Either using xlrd's built-in functions, such as
xldate_as_tuple()
, or your own function.Refer to this question for some more details.