Python读取Excel,里面如果是日期,直接读出来是float类型,无法直接使用。

通过判断读取表格的数据类型ctype,进一步处理。

返回的单元格内容的类型有5种:

ctype: 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

ctype =sheet1.cell(iRow,iCol).ctype

参考示例如下:

1.准备一个Excel文件,文件名Book1.xlsx

从第2行的第1列开始向右,分别是2019年的7月的1、2、3、4日,2019-07-01、2019-07-02、2019-07-03、2019-07-04

A列单元格的类型:date

B列单元格的类型:Text

C列单元格的类型:Text

D列单元格的类型:Custom里的一种日期格式

2.Python文件,ReadExcelDemo.py,代码如下:

#! -*- coding utf-8 -*-
#! @Time :2019/7/4 15:46
#! Author :Frank Zhang
#! @File :ReadExcelDemo.py
#!SoftWare PyChart 5.0.3
#! Python Version 3.7
import xlrd
import os
import time
from datetime import datetime
from xlrd import xldate_as_tuple def main():
sPath = os.getcwd()
sFile = "Book1.xlsx"
wb = xlrd.open_workbook(filename=sPath + "\\" + sFile)
sheet1 = wb.sheet_by_index(0)
nrows = sheet1.nrows
ncols = sheet1.ncols for iRow in range(1,nrows):
for iCol in range(ncols):
sCell = sheet1.cell_value(iRow,iCol) #Python读Excel,返回的单元格内容的类型有5种:
#ctype: 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype = sheet1.cell(iRow,iCol).ctype #ctype =3,为日期
if ctype == 3:
date = datetime(*xldate_as_tuple(sCell, 0))
cell = date.strftime('%Y-%m-%d') #('%Y/%m/%d %H:%M:%S')
print(cell)
#ctype =1,为字符串
elif ctype == 1:
if isVaildDate(sCell):
t1 = time.strptime(sCell, "%Y-%m-%d")
sDate = changeStrToDate(t1,"yyyy-mm-dd")
print(sDate)
else:
pass def formatDay(sDay,sFormat):
sYear = str(sDay.year)
sMonth = str(sDay.month)
sDay = str(sDay.day) if sFormat == "yyyy-mm-dd":
sFormatDay = sYear +"-" +sMonth.zfill(2)+"-" +sDay.zfill(2)
elif sFormatStyle == "yyyy/mm/dd":
sFormatDay = sYear +"/" +sMonth.zfill(2)+"/" +sDay.zfill(2)
else:
sFormatDay = sYear+"-" + sMonth + "-" + sDay return sFormatDay """
功能:判断是否为日期
"""
def isVaildDate(sDate):
try:
if ":" in sDate:
time.strptime(sDate, "%Y-%m-%d %H:%M:%S")
else:
time.strptime(sDate, "%Y-%m-%d")
return True
except:
return False """
功能:把字符串格式的日期转换为格式化的日期,如把2019-7-1转换为2019-07-01
"""
def changeStrToDate(sDate,sFormat):
sYear = str(sDate.tm_year)
sMonth = str(sDate.tm_mon)
sDay = str(sDate.tm_mday) if sFormat == "yyyy-mm-dd":
sFormatDay = sYear +"-" +sMonth.zfill(2)+"-" +sDay.zfill(2)
elif sFormatStyle == "yyyy/mm/dd":
sFormatDay = sYear +"/" +sMonth.zfill(2)+"/" +sDay.zfill(2)
else:
sFormatDay = sYear+"-" + sMonth + "-" + sDay return sFormatDay if __name__ == "__main__":
main()

3.执行结果:

Python读取Excel,日期列读出来是数字的处理的更多相关文章

  1. python读取excel,数字都是浮点型,日期格式是数字的解决办法

    excel文件内容: 读取excel: # coding=utf-8 import xlrd import sys reload(sys) sys.setdefaultencoding('utf-8' ...

  2. C# 读取Excel日期格式

    读取Excel日期数据,一种方式是在EXCEL中把你的日期列的格式设置一下,设成"文本"型. 如果单元格格式设置为date,则在后台读出的数值是一个数值,如2008-08-08读出 ...

  3. [转] Windows下使用Python读取Excel表格数据

    http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...

  4. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  5. 记录:python读取excel文件

    由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...

  6. 利用xlrd模块实现Python读取Excel文档

    # -*- coding: cp936 -*- #python读取excel import xlrd def main(): xls=xlrd.open_workbook("d:\\11.x ...

  7. python读取Excel表格文件

    python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...

  8. Python读取Excel表格

    前言:需要进行自动化办公或者自动化测试的朋友,可以了解下此文,掌握Python读取Excel表格的方法. 一.准备工作: 1.安装Python3.7.0(官网下载安装包) 2.安装Pycharm(官网 ...

  9. JXL读取Excel日期时间不准确

    XL读取Excel日期时间多出了8个小时. Cell c = rs.getCell(j, i);                     if (c.getType() == CellType.DAT ...

随机推荐

  1. C#中FolderBrowserDialog类打开文件夹使用说明

    C#中FolderBrowserDialog类打开文件夹使用说明   作用:打开文件选择窗口获取文件夹路径.   导入的命名空间为: System.Windows.Forms; 属性:   Descr ...

  2. 《自拍教程22》wget_文件下载工具

    wget用途介绍 日常测试过程中,我们可以用wget命令,来下载一些资源文件. wget是一个很好文件下载命令, Linux操作系统下,自带wget命令. Windows操作系统下,需要自己去下载并配 ...

  3. python学习---文件修改

    1.读一行,写一行,判断字符串,修改之. f=open("yesterday2","r",encoding="utf-8") f_new=o ...

  4. c#winform自定义窗体,重绘标题栏,自定义控件学习

    c#winform自定义窗体,重绘标题栏 虽然现在都在说winform窗体太丑了,但是我也能尽量让桌面应用程序漂亮那么一点点话不多说,先上图 重绘标题栏先将原生窗体设置成无边框,FormBoderSt ...

  5. Eclipse部署项目,常见几个问题解决方案

    一.java compiler level does not match the version of the inst 解决方案:(一般出现在拷贝项目) 第一步:在Eclipse环境中,鼠标右键选择 ...

  6. Android_向用户发送短信

    一段代码,用的时候copy就行 记得在manifest里声明send-sms和read-sms权限 public class SendMsgActivity extends AppCompatActi ...

  7. python——面向对象基础(2),烤地瓜

    """Date:2020.2.9 测试案例:烤地瓜需求分析1.烤的时间和对应的地瓜状态:2.烤制过程步骤: 1.定义类, 地瓜属性,状态,烤的时间,调料 2.定义方法,怎 ...

  8. C++\CLI使用.net委托,*Callback注意"this"

    今天在使用c++\cli的时候遇到了点关于委托,callback使用的问题,简单记录一下 首先贴段简单的C#中使用System.Threading.Timer的代码.    Timer GameTim ...

  9. MySQL基础入门使用和命令的使用

    数据库了解 概念 数据库就是一种特殊的文件,其中存储着需要的数据 一个数据库可以有多张表 MySQL是一种关系型数据库 具有关联性数据的就是关系型数据库 MySQL是一种软件可以用来创建mysql数据 ...

  10. 如何利用 WPS Office 进行 IIS Log 分析

    找到 IIS Log 打开 Internet Information Service (IIS) Manager 点击左侧 Connections > Sites,在右侧 Sites 列表中定位 ...