格式化日期数据
昨天生产文件的最后一行不是日期而是数值。Excel将日期和时间保留为浮点数,这个浮点数代表从1900年1月0日开始经过日期数,加上一个24小时的小数部位分。例如,数值1代表1900年1月1日,因为从1900年1月0日过去了1日。因此,这一列中的数值代表日期,但没有格式化的为日期格式。
代码解读:
第二行将datetime模块导入data函数,目的将函数值转化为日期并对日期进行格式化。
第三行从xlrd模块中导入两个函数。xldate_as_tuple能将Execl中代表日期、时间或日期时间的数值转化为元组。就可以提取出具体时间元素,并将其格式化为不同的时间格式。
第十四行代码创建了一个if-else语句来检验单元格类型是否为数字3.(3表示这个单元格中包含日期数据)
第十五行代码使用worksheet对象的cell_value函数和行列索引来引用单元格的值。此外,还可以使用cell().value函数,结果相同。xldate_as_tuple(worksheet.cell_value(row_index, col_index),workbook.datemode)会转换成元组中的一个代表日期的浮点数。.datemode是必须的他可以使函数确定日期是基于1900年还是1904年,并据此将数值转换成正确的元组。
其它看不懂的欢迎留言。
🔚