今天遇到一个比较实际的问题,从库存报表里面识别出最长库龄的零件,并计算出库龄。

思路很简单,将当前日期减去表格日期,得到库龄。找到max库龄就ok了。

以2行的日期为例,先print日期

d1 = sheet1.cell(1, 22)

print(d1)

结果是:xldate:42368.0

不是一个数字,浮点数字42368.0。

然后用print一下当前的日期。

d2 = datetime.datetime.now()

print(d2)

得到结果是时间数组格式:2020-05-25 20:39:09.933949

明显两者类型不同无法直接相减。

解决思路:

接下来是很有趣的信息(本文的精华就是下面这两句话)。

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

python的时间戳是指格林威治时间自1970年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种解决方法是:

date_start = datetime.datetime(1899, 12, 31) #excel表起始日期1900年1月1日

date_now = datetime.datetime.now() #当前时间

d2 = date_now - date_start #今天距离1900年1月1日时间

d2 = today.days #转化为1900年1月1日天数。

d3 = d1 - d2 #库龄

print(d1)

print(d2)

print(d3)

#得到结果

42368.0

43975

1607.0 #库龄

附上完整的代码,找到最长库龄。

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

输出结果,在库存分析.xls的sheet1中:

第一次写文章,不知道大家看懂了没。

python将excel时间_Python学习笔记(一)Python时间戳与Excel的日期相关推荐

  1. python绘制热力地图_Python学习笔记:Python做热力地图

    输入win+R然后输入cmd回车,出现DOS界面 命令行上输入:pip install folium,然后如果出现successfully的话则代表你安装成功. 数据我已经上传百度云,大家只要设置好环 ...

  2. python __name__怎么使用_python学习笔记26(python中__name__的使用)

    在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...

  3. python 操作excel 教程_Python学习笔记(十六)—Python操作Excel

    Python中对Excel文件的操作包括:读.写.修改.如果要对其进行如上的操作需要导入Python的第三方模块:xlrd.xlwd.xlutils,其分别对应Python的读.写.修改的操作 一.安 ...

  4. python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度

    python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib:   matplotlib 1.11 numpy:  nump ...

  5. python的基本数据结构_Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

  6. python编辑器文字放大_python学习笔记000

    写在最前面 其实想学习编程很久了,以前也陆陆续续学习过一段时间的编程,但总是半途而废,经过我长达三秒钟的思考,总结出以下两个方面的原因: 1.没有学习的压力.因为我不是程序员,编程不是我吃饭的家伙,会 ...

  7. python查看方法作用_python学习笔记1,新手小白也能看得懂

    这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...

  8. python的基本数据结构_python学习笔记-基本数据结构

    Python 学习笔记-1 写在最前面,因为组内小伙伴要走,生信团队由原来的7个人,慢慢的变的只有我一个人了,需要紧急突击下python,因为有python的流程要交接维护 python 基本情况 代 ...

  9. python常用开放工具_python学习笔记16-各种模块和开放工具收集整理

    一.调试,性能,日志 Debugger: pdb Logger: logging Profilers: profile, hotshot, cProfile 调试模块 pdb 允许你设置(条件)断点, ...

最新文章

  1. 树莓派harmonyos,【树莓派入门】(三)| 树莓派如何控制步进电机
  2. android 加载列表占位,使用Glide从URL加载占位符以在加载GIF时显示(Android)
  3. 云存储精华问答 | 如何选择混合云提供商?
  4. 阿里云服务器开启端口
  5. era5数据内容说明_mysql数据库自带主从配置
  6. Java之加密(信息摘要)工具类(依赖:java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils)...
  7. Abbirb120型工业机器人_你知道机器人有几种编程方式吗?
  8. goeasy服务器发送(发布)消息,python服务端使用GoEasy实现websocket消息推送
  9. 小白刷LeeCode(算法篇)5
  10. 独家发布!java总结与心得,下载量瞬秒百万
  11. 【新知实验室】手把手实现腾讯云音视频应用
  12. Bash 中的字符串变量
  13. 语音识别-人工智能实验室旗下语音识别频道,汇集最新最全的语音识别新闻及资讯,让您掌握语音识别第一手的资讯-中国人工智能网-Powered by www.AiLab.cn
  14. cocos2dx:重力加速度,自由落体:利用update()就能快速实现精灵自由落体运动
  15. 莫辞更坐弹一曲,为君翻作《琵琶行》——python文件I\O
  16. 16个css3动画按钮/纯代码
  17. oracle weblogic开启,菜鸟经验:oracle与weblogic自动启动与停止
  18. 【CRC笔记】CRC-32 ISO-HDLC C语言实现
  19. 麒麟980/麒麟970/麒麟960处理器有什么区别?Kirin980/Kirin970/Kirin960参数对比
  20. flutter 项目实战二 网络请求

热门文章

  1. DirectX11 模板测试
  2. Unity Realistic FPS插件 Ironsights脚本简化
  3. 程序员的自我修养_之二_曾国藩的“大悔大悟”
  4. 免费U盘文件恢复,你不知道的10款u盘恢复软件
  5. matlab 精品课程,同济大学经济与管理学院精品课程
  6. Hulu推荐 | 五年口碑依旧百分百好评?《汉密尔顿》上线Disney+
  7. 尚硅谷算法与数据结构学习笔记05 -- 递归
  8. elementUI 时间格式化
  9. 日有所思(4)——磁密,磁场强度,磁通量傻傻分不清
  10. MLX90614驱动,功能简介以及PEC校验