最近有小伙伴问了小编一个非常有趣的问题,就是现在有一个Excel表,需要根据关键词来取出Excel表中包含了该关键词的行数据。那么下面会来以详细的代码示例讲解一下该问题如何实现,感兴趣的话就和小编一起往下看看吧。
1.首先需要来分析一下这个问题的需求,将其拆解开来看就是,只要在单元格内有这个关键词,那么一整行的数据都是要被取出来。行操作就很好解决了,先导入xlrd以及xlwt两个模块。因为取出数据后还是需要写入的,示例如下:
import xlrd
import xlwt
2.然后调用读取Excel表格的模块将其打开,并且使用sheet[]切片的方式得到其中某一个工作薄的对象。然后再调用Workbook方法构建出来一个新的Excel对象,并且创建一个工作簿。这样数据读取和写入的对象都实例化完成了,代码如下所示:
data = xlrd.open_workbook(r'shuju.xlsx')
rtable = data.sheets()[0]
wbook = xlwt.Workbook(encoding='utf-8',style_compression = 0)
wtable = wbook.add_sheet('sheet1',cell_overwrite_ok = True)
3.第三步要做的就是定义变量count来作为取出数据的总行数,然后定义变量来保存关键词,示例如下:
count = 0
keyword = ('python')
keyword1 = ('c++')
4.这一步就是整个方法的关键了,使用for循环进行迭代,迭代的次数由该Excel表格工作簿的总行数或者小于其的数字来决定。在循环中判断每一个单元格的值是否等于关键字,而单元格值可以通过cell(I,2)方法获取,意思就是第几行二列。
判断成功之后还是要去进行循环,这次循环的次数就是由sheet的列数决定。循环之中将取出来的数据写入到新建的Excel对象内,最后将其给保存为Excel文件即可,详细代码如下所示:
for i in range(0,40):
if rtable.cell(i,2).value == keyword or rtable.cell(i,3).value == keyword or rtable.cell(i,4).value == keyword
or rtable.cell(i,5).value == keyword or rtable.cell(i,2).value == keyword1 or rtable.cell(i,3).value == keyword1
or rtable.cell(i,4).value == keyword1 or rtable.cell(i,5).value == keyword1:
for j in range(0,5):
wtable.write(i,j,rtable.row_values(i)[j])
count += 1
wbook.save(r'medicaldata.xls')
以上就是关于“Python如何根据关键词取出Excel行数据?Python怎么用关键词查找Excel数据”的全部内容了,希望对你有所帮助。