资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Python3时间戳怎样在excel中运用-创新互联

小编给大家分享一下Python3时间戳怎样在excel中运用,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

成都创新互联公司是一家专注于成都网站建设、做网站与策划设计,冀州网站建设哪家好?成都创新互联公司做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:冀州等地区。冀州做网站价格咨询:18980820575

计算时间似乎不是什么容易的题目,当然这只是小编个人这样理解的。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种解决方法是:

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')

看完了这篇文章,相信你对Python3时间戳怎样在excel中运用有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前名称:Python3时间戳怎样在excel中运用-创新互联
本文地址:http://cdkjz.cn/article/jpiec.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220