
这里介绍3种Python读写Excel的方法,分别是xlrd和xlwt、openpyxl以及pandas,这3种方法都非常简单,感兴趣的朋友可以自己尝试一下:
xlrd和xlwt
这是最基本的Python读写Excel的方式,xlrd专门用于读取Excel,xlwt专门用于写入Excel,下面我简单介绍一下这种方式:
xlrd读取excel,测试代码如下,非常简单,先打开对应的Excel文件,然后定位到某一个sheet,最后再直接读取行、列、单元格值即可:
xlwt写入excel,测试代码如下,新建一个Excel文件,然后添加一个sheet,最后再直接将数据写入对应单元格即可:
openpyxl
这也是Python一个专门用于读写Excel文件的模块,基本读写方式和xlrd、xlwt差不多,使用起来也非常方便,下面我简单介绍一下这种方式:
读取Excel,测试代码如下,打开Excel文件,然后根据name获取到对应sheet,最后再直接读取行、列、单元格值即可:
写入Excel,测试代码如下,新建一个Excel文件,然后添加一个活动sheet,最后再直接将数据写入单元格即可:
pandas
这是Python最简单的读写Excel文件的方法,pandas内置了read_excel和to_excel这2个函数,一行代码即可完成对Excel文件的读写,下面我简单介绍一下这种方式:
读取Excel,测试代码如下,非常简单,read_excel函数直接读取即可,这里返回的数据类型是DataFrame,可以按行、列、单元格取值:
写入Excel,测试代码如下,先构造需要写入的数据,然后直接利用DataFrame的to_excel函数保存为Excel文件即可:
至此,我们就介绍完了Python读写Excel文件的3种方法。总的来说,这3种方法都非常简单,只要你有一定的Python基础,熟悉一下相关代码和文档,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
经测试,代码并无问题。
wbget_sheet_by_name('Sheet1')返回的是工作表中最大的行号(所有列中有数据区的最大行号者)
你的代码并没有超过这个最大行号(也就是修改的内容在最大行号内),所以表现不出来。
即你并没有改变工作表的最大行号(没有增加行)
通常是直接用命令行cat 文件名|grep -c "idea"就可以解决。
在python里也可以直接 open('文件名','rb')read()count('idea')这样的方式取得数量
如果是复杂一些,可以用正则、
text=open('文件名','rb')read()
refindall('(isu)"username":"idea"', text)
就是把xls or xlsx另存为CSV格式,然后再检索。代码如下
# -- coding: cp936 --
import linecache
o=open('d:\\test\\14csv')#文件路径
oseek(0)
r=oreadlines()
s1=str(input('输入要定位的信息:'))
a=0
count=0
for i in r: #按和值组合查找
if ifind(s1)>=0:
print r[a-1]#显示上一行
print i#显示定位行
print r[a+1]#显示下一行
a+=1
print 'Total:%d'%count
例:
在以下数据中,查找含有T的行,并显示上一行(n行) or 下一行(n行) 。
1,2,3,4
W,R,GFR,T
12,,F,34,G
这个就用上面的代码就行了。
对于题主说的问题主要的难点在于关键词的匹配,实现代码如下
import re
#读入txt文件中的关键词
with open("atxt", "r") as f:
keywords = fread()
#将关键词转换成正则匹配的格式,也就是把各个关键词用|分割
keywords = keywordsreplace("\n", "|")
if research(keywords, cell_value):
# 如果匹配到关键词执行写入excel的 *** 作,这里cell_value是读到的单元格的内容
对于excel的读写 *** 作,这里就不再赘述了,很多库都能实现
121 新建保存工作簿(覆盖创建)
获取当前活动工作表的:
以索引值方式获取工作表:
以工作表名获取: wb['工作表名'],注意,此表达方式为切片显示,所以没有成员提示。很少用
循环工作表:很好用,一般用sheetnames
获取所有工作表名:wbsheetnames
获取指定工作表名
修改工作表名称
新建工作表时的默认工作表名:
workbookremove(工作表)
A1 表示法: 工作表['A1'] ,R1C1 表示法:工作表cell(行号,列号)
2工作表['起始行号': '结束行号']或者工作表['起始行号: 结束行号'],此方法是按行读取的数据。
3工作表['起始列号': '结束列号']或者工作表['起始列号: 结束列号'],
此方法是按列读取的数据。
4获取(按行)指定工作表所有已用数据:
list(workbookworksheets[索引值]values)
按行求和(方法 1)
按行求和(方法 )
按列统计平均值
按行获取工作表使用区域数据:worksheetrows
按列获取工作表使用区域数据:worksheetcolumns
获取工作表中最小行号:worksheetmin_row
获取工作表中最小列号:worksheetmin_column
获取工作表中最大行号:worksheetmax_row
获取工作表中最大列号:worksheetmax_column
获取单元格的行号:cellrow
获取单元格的列号:cellcolumn iter
方法获取指定区域:
1按行获取指定工作表单元格区域:worksheetiter_rows(……)
2按列获取指定工作表单元格区域:worksheetiter_cols(……)
可以通过 min_row、min_col、max_col、max_row 这几个参数进行单元格区域的控制
A1 表示法:工作表['A1']=值,R1C1 表示法:工作表cell(行号,列号,值)
在最后一行写入数据:工作表append(列表)
1102 实例应用(九九乘法表)
最后加一列写优秀
pandas 读取指定单元格 第2行,第3列
import pandas as pd
df = pdread_excel('测试xlsx')
cell = dfiat[0, 2]
[0, 2] 表示单元格的行列 pandas 默认跳过表头从第二行开始 第三列是2 (012)
以上就是关于python *** 作excel方法全部的内容,包括:python *** 作excel方法、为什么python用openpyxl模块 *** 作Excel,修改数据前后获取的行数是一样的、利用python对excel计数,并输出结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)