python - 文件目录操作 之 file文件读写 - xlrd模块

 

一、xlrd、xlwt、xlutils区别

xlrd 可以在任意平台上读取的excel为: .xls以及 .xlsx 。

xlwt支持excel版本: Microsoft excel版本 95---2003,也就是 xls文件。

若在xlrd与xlwt之间进行交互,如拷贝 xlrd 到 xlwt 需要用到xlutils,xlutils提供 copy、display、filter、margins、Save、styles等函数。

 

二、xlrd使用

1.打开Excel文件

data = xlrd.open_workbook('excelFile.xls')

 

2.读取所有工作表

workbook = xlrd.open_workbook('excelFile.xls')

workbook.sheet_names()

 

3.获取一个工作表,共有3种方式: 

table = data.sheets()[0] #通过索引顺序获取 

table = data.sheet_by_index(0) #通过索引顺序获取 

table = data.sheet_by_name(u'Sheet1')#通过名称获取

 

4.获取整行和整列的值(数组) 

table.row_values(i) 

table.col_values(i)

 

5.获取行数和列数 

nrows = table.nrows 

ncols = table.ncols

 

6.循环行列表数据 

for i in range(nrows ): 

    print table.row_values(i)

 

7.读取单元格 

cell_A1 = table.cell(0,0).value 

cell_C4 = table.cell(2,3).value

 

8.判断单元格数据类型

ctype=table.cell(i,j).ctype

类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error 

 

9.使用行列索引

cell_A1 = table.row(0)[0].value 

cell_A2 = table.col(1)[0].value

 

10.简单的写入 

import xlrd

data = xlrd.open_workbook('excelFile.xls')

table = data.sheet_by_name(u'Sheet1')#通过名称获取

row = 0 

col = 0 

# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error 

ctype = 1 

value = '单元格的值' 

xf = 0 # 扩展的格式化 

table.put_cell(row, col, ctype, value, xf) 

table.cell(0,0)  #单元格的值' 

table.cell(0,0).value #单元格的值' 

 

11.获取sheet名字  

import xlrd                   

xlsfile = r'D:\AutoPlan\apisnew.xls'   

book = xlrd.open_workbook(xlsfile)

#获取sheet对象,方法有2种:  

sheet_name=book.sheet_names()[0]        

#获得指定索引的sheet名字  

print sheet_name  

sheet1=book.sheet_by_name(sheet_name)

#通过sheet索引获得sheet对象  

sheet0=book.sheet_by_index(0)     

 

三、读取excel单元格日期数据

1.使用xldate_as_datetime函数

将excel中的日期数据转换为yyyy/mm/dd格式

import xlrd

data = xlrd.open_workbook('E:/python/project/ab123.xlsx')

table = data.sheet_by_name(u'chinese')                       #通过名称获取表

nrows = table.nrows                                          #数据行数

ncols = table.ncols

for i in range(1,nrows ):                                    #跳过第1行表头

  data=list(table.row_values(i))

  for j in range(0,ncols):

    type=table.cell(i,j).ctype

    if type==3 :

      t1=xlrd.xldate.xldate_as_datetime(table.cell(i,j).value,0)

      data[j]=t1.strftime('%Y/%m/%d')

  print(data)

结果:

['小文', 88.0, '1990/02/22']

['小明', 86.0, '2016/07/09']

['小红', 99.0, 20160908.0]

 

3.使用xldate_as_tuple函数

将excel中的日期数据转换为yyyy/mm/dd格式

import xlrd

data = xlrd.open_workbook('E:/python/project/ab123.xlsx')

table = data.sheet_by_name(u'chinese')                       #通过名称获取表

nrows = table.nrows                                          #数据行数

ncols = table.ncols

for i in range(1,nrows ):                                    #跳过第1行表头

  data=list(table.row_values(i))

  for j in range(0,ncols):

    type=table.cell(i,j).ctype

    if type==3 :

      t1=xlrd.xldate.xldate_as_tuple(table.cell(i,j).value,0)

      data[j]=str(t1[0])+'/'+str(t1[1])+'/'+str(t1[2])

  print(data)

 

#结果:

['小文', 88.0, '1990/2/22']

['小明', 86.0, '2016/7/9']

['小红', 99.0, 20160908.0]

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值