python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。
来源:互联网 发布:linux查看所有进程命令 编辑:程序博客网 时间:2024/05/17 04:31
如何通过python写入date数据了?
写入还是很简单的。
import xlwt3
import datetime as dt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
worksheet.write(0, 0, dt.date.today())
workbook.save('test.xls')
查看一下,确实写入了,但变成了一个数字。怎么回事了,原来excel保存日期采用的是float类型保存。
查看worksheet.write:
Help on method write in module xlwt3.worksheet:
write(self, r, c, label=b'', style=<xlwt3.style.XFStyle object>) method of xlwt3
.worksheet.Worksheet instance
太简单了,label是什么?
只能查看源码了:
def write(self, r, c, label=b"", style=style.default_style):
self.row(r).write(c, label, style)
继续挖掘:
def write(self, col, label, style=style.default_style):
self.__adjust_height(style)
self.__adjust_bound_col_idx(col)
style_index = self.__parent_wb.add_style(style)
if isinstance(label, str):
if len(label) > 0:
self.insert_cell(col,
StrCell(self.__idx, col, style_index, self.__parent_wb.add_str(label))
)
else:
self.insert_cell(col, BlankCell(self.__idx, col, style_index))
elif isinstance(label, bool): # bool is subclass of int; test bool first
self.insert_cell(col, BooleanCell(self.__idx, col, style_index, label))
elif isinstance(label, (float, int, Decimal)):
self.insert_cell(col, NumberCell(self.__idx, col, style_index, label))
elif isinstance(label, (dt.datetime, dt.date, dt.time)):
date_number = self.__excel_date_dt(label)
self.insert_cell(col, NumberCell(self.__idx, col, style_index, date_number))
elif label is None:
self.insert_cell(col, BlankCell(self.__idx, col, style_index))
elif isinstance(label, formula.Formula):
self.__parent_wb.add_sheet_reference(label)
self.insert_cell(col, FormulaCell(self.__idx, col, style_index, label))
else:
raise Exception("Unexpected data type %r" % type(label))
原来:
elif isinstance(label, (dt.datetime, dt.date, dt.time)):
date_number = self.__excel_date_dt(label)
self.insert_cell(col, NumberCell(self.__idx, col, style_index, date_number))
label的数值,会先进行判断,然后进行处理。
这样,只需要设置一下style就可以了!
dateFormat = xlwt.XFStyle()
dateFormat.num_format_str = 'yyyy/mm/dd'
worksheet.write(0, 0, dt.date.today(),dateFormat)
workbook.save('test.xls')
搞定。
注意一下:
python的date 和excel的date是不一样的。
实验一下:
dt.date.today().toordinal()##2015/6/19
735768
读取一下excel的数值了?
import xlrd
worksheetRead = xlrd.open_workbook('test.xls')
sheetRead=Rd.sheet_by_index(0)
sheetRead.cell(0,0).value
42174
差别真不小!!
WHY?
原来:python是从公元1年1月1日开始的天数转换 的!
excel是从1899年12月 31号开始的。
做一个函数转换一下即可:
__s_date = dt.date (1899, 12, 31).toordinal() - 1
def getdate(date ):
if isinstance(date , float ):
date = int(date )
d = dt.date .fromordinal(__s_date + date )
return d
ok,over!!
- python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。
- 在 .net 中读取Excel文件中的日期数据
- Python从Excel中读取日期一列
- .net 中读取 Excel 中的日期数据
- 如何在java类中向oracle数据库写入Date类型的日期
- Excel 读取数据,日期读取
- Excel中如何正确显示日期和时间
- Mysql中的date与datetime,以及如何向Mysql中插入“日期+时间”数据
- javascript中如何正确将日期(Date)字符串,转换为日期(Date)对象?
- javascript中如何正确将日期(Date)字符串,转换为日期(Date)对象?
- SpringMVC中在使用@ResponseBody时如何将Date类型的日期返回指定格式的json数据
- Python 在 MySQL 中读取、写入数据
- 去掉数据库中date类型的日期数据导出到Excel后多余的 0:00:00
- 在Jquery里格式化Date日期时间数据
- 在Jquery里格式化Date日期时间数据
- 如何在EXCEL中实现日期自动递增
- 如何在Excel 中使用日期与时间
- 在excel中如何快速插入当前日期和时间
- SAT阅读题Sentence Completion第四套
- 对象的销毁与垃圾回收机制
- 224.Basic Calculator
- ubuntu14.04+CUDA7.0+cuDNN-v2+OPENCV3.0 caffe环境配置
- maven nexus 搭建私服
- python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。
- 解决 Cannot run program "/home/zhengyx/git/jymall-android-master/${aapt}"
- 使用Spring的LdapTemplate进行LDAP操作
- IOS 资源文件的读取
- SylixOS ARM BSP 第二篇【startup.S】
- POJ 1011 Sticks(dfs)
- HTML中meta标签详解
- 收到一位同学的来信,问8168的问题,回答如下
- centos下varnish的安装