• 技术文章 >Python技术 >Python基础教程

    Python3时间戳如何在excel中运用?

    小妮浅浅小妮浅浅2020-11-17 12:14:18原创2155

    计算时间似乎不是什么容易的题目,当然这只是小编个人这样理解的。excel一直是我们从小接触的软件,小编也不好自卖自夸,说自己使用excel多么厉害。但是要是用python那还是比较有自信的。其中的时间戳用来计算时间,小编认为并不比excel要逊色,不相信的小伙伴可以往下看看。


    从库存报表里面识别出最长库龄的零件,并计算出库龄。

    解决思路:

    excel读到的日期的浮点数,代表的是自1900年1月1日以来的天数。

    python的时间戳是指格林威治时间自1970年1月1日至当前时间的总秒数。

    所以有两种思路:

    1.库龄天数=(当前时间戳-表格时间戳)/60/60/24

    excel的浮点数(42368.0)转化成时间数组格式(这步有点麻烦),再转化成时间戳。

    然后也将python读到的当前时间(2020-05-25 20:39:09.933949)转换成时间戳,然后再将秒数折算成天数。

    2. 库龄天数=表格浮点数-当前日期转换成浮点数

    python的当前时间数组格式-1899年12月31日的时间数组格式,得到的一个时间数组格式。这个差值转换成天数(datetime模块下 .days)。得到当前距离1900年1月1日的天数。然后减去表格的浮点数,得到库龄。

    小编用的是第2种解决方法是:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    import xlrd

    import xlwt

    import datetime

      

    #读取收货日期,计算库龄,找到最长库龄

    wb = xlrd.open_workbook('库存报表20200520.xlsx')

    sheet1 = wb.sheet_by_name('Sheet1')

      

    #计算当前时间,转换成excel时间戳,excel时间戳其实时间1990年1月1日

    date_start = datetime.datetime(1899, 12, 31)

    date_now = datetime.datetime.now()

    tod = date_now - date_start

      

    #计算库龄,写入数列deltas

    deltas = []

    titlesrow = 1

    nrows = sheet1.nrows-2

    for i in range(nrows):

        d = sheet1.cell(1+i, 22)

        d = int(d.value)

        delta = tod.days - d

        deltas.append(delta)

      

    # 新建一个表格,记录分析结果

    wb = xlwt.Workbook()

    sheet = wb.add_sheet('关键数据')

      

    titles = ['最长库龄', '零件号', '零件名称', '数量']

    for i in range(len(titles)):

        sheet.write(0, i, titles[i])

      

    # 找到库龄,写到表格

    max = max(deltas)

    sheet.write(1, 0, max)

      

    # 库龄对应的零件号,数量

    max_index = deltas.index(max)

    max_part = sheet1.cell(max_index + 1, 3).value

    max_name = sheet1.cell(max_index + 1, 4).value

    max_num = sheet1.cell(max_index + 1, 5).value

    sheet.write(1, 1, max_part)

    sheet.write(1, 2, max_name)

    sheet.write(1, 3, max_num)

    wb.save('库存分析.xls')


    有经常使用excel的小伙伴也可以试试python3时间戳的方法哦,试完后可以看看哪个软件的的常规方法更好用。更多Python学习推荐:PyThon学习网教学中心

    专题推荐:python3时间戳
    上一篇:python3时间中datetime有哪些转换方式? 下一篇:python3时间datetime如何转换成数字?

    相关文章推荐

    • python3时间中time是什么?怎么转换?• python3时间中datetime有哪些转换方式?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网