Python学习笔记(办公篇Excel)

发布时间:2019-03-12 00:44:30编辑:auto阅读(2001)

    • 简介:

         今日接了个小单,把数据从xlsx读取到本地生成散点图,在读取日期数据时发现,读取下来的日期是数字,不是日期的格式  

    •  所要用的库:
      • xlrd :1.1.0
      • time:
      • datetime:
    • 解决方法:
      •  代码
     1 import  xlrd
     2 import  time,datetime
     3 
     4 def create_excel():
     5     work_book = xlrd.open_workbook('新建 XLSX 工作表 (3).xlsx')
     6                                    #打开文件
     7     sheet = work_book.sheet_by_name('Sheet1')#打开其中一份sheet
     8     time1 = []
     9     time2 = []
    10 
    11     for i in range(sheet.nrows):#sheet.nrows 行总数
    12         time2 .append(str(sheet.cell_value(i, 0)))
    13             #获取第i行第0列的数据
    14         try:#因为表中数据不完整,所以会有异常
    15             #转换,把读取下来的数字转化为日期
    16             #因为读取下来的数字(比如说42912)
    17             # 是从1900-01-01开始算起的第42912天
    18             #通过timedelta将时间差转换为时间再加上1900-1-1就是当前时间
    19             #不清楚为啥,最后结果多了两年,所以在转化时-2
    20             data2 = datetime.datetime(1900, 1, 1) + datetime.timedelta(days=sheet.cell_value(i, 0) - 2)
    21             time1.append(data2)
    22         except TypeError:#处理异常
    23             time1.append(str(sheet.cell_value(i, 0)))
    24     print("未转化数据:",time2)
    25     print("转化后数据:",time1)
    26 
    27 if __name__ == '__main__':
    28     create_excel()
    • 总结:

        感谢prolifes提供的解决方案:https://segmentfault.com/q/1010000010921862

        感谢像风一样自由提供的xlrd相关介绍:https://blog.csdn.net/five3/article/details/7034826

        上述文章如哪里有错,请及时联系博主,QQ406802063 感谢

关键字