如何通过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=) 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日期和时间数据_python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。...相关推荐

  1. excel学习笔记:数据格式,单元格格式(快捷键,自动调整行列宽,条件格式,自定义格式,日期星期时间的设置,特殊数字,多种填充方式,从下拉列表选择,数据验证。)

    文章目录 数据格式.单元格格式 1. 快捷键 2. 自动调整列/行宽 3. 条件格式 4. 日期设置 5. 星期设置 6. 时间设置 7. 特殊数字 8. 选中多个填充,ctrl选中,输入100,ct ...

  2. python将时间戳转化为时间格式_python时间戳转换日期格式的方法是什么

    日期和时间的相互转换可以利用Python内置模块time和datetime完成,且有多种方法供我们选择,当然转换时我们可以直接利用当前时间或指定的字符串格式的时间格式. 获取当前时间转换 我们可以利用 ...

  3. python秒数转化为时间格式_python将秒数转化为时间格式的实例

    python将秒数转化为时间格式的实例 1.转化成时间格式 seconds =35400 m, s = divmod(seconds, 60) h, m = divmod(m, 60) print(& ...

  4. python的脚本扩展名是什么_Python的脚本文件扩展名为()。

    [单选题]在Python中可使用readline([size])来读取文件中的数据,如果参数size省略,则读取文件中的(). [单选题]佳能的标志属于哪种形式? [单选题]在open函数中访问模式参 ...

  5. python怎么添加csv模式_python对csv文件追加写入列的方法

    python对csv文件追加写入列,具体内容如下所示: 原始数据 [外链图片转存失败(img-zQSQWAyQ-1563597916666)(C:\Users\innduce\AppData\Roam ...

  6. 求python一个类与对象的代码_Python基础系列(五)类和对象,让你更懂你的python代码...

    首先,非常感谢各位打开本博文,本博文是Python入门基础系列文章之一,Python目前是非常火的编程工具,其实作为编程不在只是程序员的专利,每一个人在日常的工作中.学习中都会或多或少的要用到一些工具 ...

  7. python中如何调用函数_我写了一个函数,如何在python中调用

    匿名用户 1级 2015-03-06 回答 Python的特色简单 Python是一种代表简单主义思想的语言.阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Pyth ...

  8. python程序化 k线指定时间更新_Python获取股票历史、实时数据与更新到数据库

    要做量化投资,数据是基础,正所谓"巧妇难为无米之炊" 在免费数据方面,各大网站的财经板块其实已提供相应的api,如新浪.雅虎.搜狐...可以通过urlopen相应格式的网址获取数据 ...

  9. python从txt拿取数据_python从txt文件读取数据

    (作为一个python初学者,记录一点学习期间的笔记,方便日后查阅,若有错误或者更加便捷的方法,望指出!) 1.读取TXT文件数据,并对其中部分数据进行划分.一部分作为训练集数据,一部分作为测试集数据 ...

最新文章

  1. hdu 1789 Doing Homework again
  2. 多图指南——微信小程序设计规范
  3. Android小结(1)
  4. 【粉丝福利】今天不谈技术,只送福利!
  5. 2016蓝桥杯省赛---java---C---8(冰雹数)
  6. Quartus II 与ModelSim-SE联合仿真Shift_ram
  7. 无法打开文件“libboost_python-vc120-mt-sgd-1_59.lib”
  8. 本周小结!(二叉树系列三)
  9. 数据库系统工程师学习记录(计算机系统知识)
  10. [小甲鱼]汇编语言笔记 基础知识
  11. 链表节点被删除时的资源释放
  12. 腾讯大厂2022校招来啦
  13. 常见词根-词缀-需要记忆
  14. pyinstaller 出现Cannot find existing PyQt5 plugin directories
  15. MySQL报错: Incorrect string value: '\xE5\x85\xA8\xE7\x90\x83...' for column 'cname' at row 1
  16. 数据结构习题--线性表
  17. 区块链技术在电子档案管理中的应用场景分析
  18. linux 安装qt5和qtcreator开发工具
  19. QCAD dxf 扩展属性
  20. java base64写入文件_java之文件与base64字符之间的相互转换

热门文章

  1. mysql端口4050_mysql 安装使用小记
  2. InputStream和OutputStream
  3. Fax Helper
  4. CSS样式表书写位置
  5. 2017.08.15【NOIP提高组】模拟赛B组 生日聚餐
  6. 数据结构之红黑树(三)——删除操作
  7. TestNg的IReporter接口的使用
  8. android 菜单隐藏了,隐藏一些导航菜单菜单项 – Android
  9. SQL数据库语言基础之SqlServer数据库原理与设计课程期末复习-条件查询实例练习【学生表、选课表、家庭作业表】
  10. xstart连不上linux_Xstart远程连接Linux图形用户界面