Python

Python操作Excle

2018-08-23  本文已影响27人  莫问以

先建一张表,以便操作:


1.xlsx

利用两个模块进行操作,命令为:
pip install xlrd
pip install xlwt


终端操作截图
导包以后,需把文件放在同级目录:
表和项目放同级

开始上代码:

import xlrd
file_path='1.xlsx'
xlrd.book.ensure_unicode='utf-8'    #设置编码
data=xlrd.open_workbook(file_path)  #打开文件
sheet_names = data.sheet_names()    #获取文件中所包含的Sheet名
table = data.sheet_by_index(0)
rows_count = table.nrows        #取总行数
cols_count = table.ncols        #取总列数
print(rows_count,cols_count)    #4行4列  

row_data = table.row_values(0)  #取第一行的数据
col_data = table.col_values(0)  #取第一列的数据
print(row_data,col_data)    #['张三', '仙剑奇侠传', 'aaa', 'Beautiful', 20180806.0] ['张三', '李四', '王五', '雷六']

cell_data = row_data[0] #获取第0行第0列的值
cell_data_A1 = table.cell(1,1).value #获取第一行第一列的值
print(cell_data,cell_data_A1)   #张三 西游记  注意下标从0开始

for row in range(0,rows_count):
    for col in range(0,cols_count):
        data1 = table.cell(row,col).value
        print(data1,end='')
    print('\n')

扩展,如遇时间格式,先打印一下看看结果:

#扩展--- 关于时间格式
col_data5 = table.col_values(4)
print("取时间列--",col_data5)
打印出来的时间列

看图,可知格式并不是我们想要的。所以,我们可以利用ctype显示单元格数据的类型,ctype有这几种类型:

ctype类型有:0-Empty 1-String 2-Number 3-data 4-boolean 5-error

所以,我们可以这样,先判别时间一列对应的ctype码是什么:

print(table.cell(0,4).ctype)    #2
print(table.cell(1,4).ctype)    #2
print(table.cell(2,4).ctype)    #2
print(table.cell(3,4).ctype)    #2
#打印出来的结果,是Number格式,而并非data格式
#date_value = xlrd.xldate_as_tuple(table.cell(2,4),data.datemode)
#print(date_value)   #检查时间格式是否可以用
全都是Number格式
上一篇下一篇

猜你喜欢

热点阅读