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格式