700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python 如何判断excel单元格为空_如何用python处理excel(二)

python 如何判断excel单元格为空_如何用python处理excel(二)

时间:2019-05-14 08:10:59

相关推荐

python 如何判断excel单元格为空_如何用python处理excel(二)

读取excel

import xlrd

workbook=xlrd.open_workbook(r'C:\Users\Desktop\hebing\学生登记表.xls')

sheet=workbook.sheet_by_index(0)#根据序列号来打开某一个sheetrow=sheet.nrows#将excel的行数赋值给变量col=sheet.ncols#将excel的列数赋值给变量print(sheet.cell_value(1,0))#打印出第二行第一列的单元格内容

还是昨天那个excel:

上面的代码是打印出第二行第一列的单元格,打印结果是小明.

以此类推,你可以打印出所有你指定的单元格的数据.

但是有时候我们想迅速查找某一些数据,比如我不知道小红是第几行第几列,我想显示小红的所有资料该怎么做呢?

for i in range(row):if '小红' in sheet.row_values(i):print(sheet.row_values(i))

首先第一行写一个for循环,循环的范围是excel的行数

然后我么用row_values()来获取excel每一行的数据,括号里面是什么数字,就会抓取那一行所有的数据.

而row_values的结果会返回一个列表,每一个单元格都是这个列表里面的一个元素,因此这里我们用if语句来判断小红是否在这个列表之中,如果在,我们就把这一整行的数据都打印出来.

这个逻辑不难吧?觉得难的同学你前面的python基础一定没有打扎实.

那么还有一种情况,就是我们只记得某一个数据的部分内容,该怎么查找数据呢?

比如这里面我忘了小明的名字,只知道名字里面带有一个"明"字,那我如何查找到数据呢?

for i in range(row):for j in range(col):if str(sheet.cell_value(i,j)).find('明')!=-1:print(sheet.row_values(i))

首先来两个循环,一个是为了遍历excel的行数,一个是为了遍历列数.

然后我们对每个单元格逐个进行判断,判断单元格是否包含"明"这个字,如果找到了,那么我们就打印出这一行的所有数据.

这里主要有两点注意:

一:

这里主要是find()函数的运用.

find()函数里面可以传递两个参数,find(参数1,参数2).

参数1是你要查找的目标,比如我们这里查找的是"明"这个字.

而参数2指的是你要从第几位开始查找.

比如有一串字符串"小明小东大明"

如果我们对这个字符串进行查找,我们想查找第二个明出现的位置,那么我们就可以:

"小明小东大明".find('明',2)

2的意思是让find函数从第三个位置开始查找,这样程序就会忽略第一个明,来查找第二个明的位置.

find函数如果查找到了,就会返回所在的索引位置,如果没有查找到,就会返回-1.因此我们在例子里面写的是不等于-1.不等于-1意思就是找到"明"这个字符串.

二:

我们在

sheet.cell_value(i,j)

前面加了str().

之所以要加str是为了把每一个单元格都转化成字符串.

为什么呢?

我们都知道excel里面的数据含有很多的格式,比如小数点,比如日期,比如整数等等,而find函数只能对字符串进行查找,因此如果不用str的话,当程序遍历到一个非字符串的单元格数据时,程序就会报错.

很简单吧?

如果觉得难,那么回头看看前面的python基础,了解基本的语法以后再来看.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。