python *** 作excel方法

python *** 作excel方法,第1张

这里介绍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计数,并输出结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9827664.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存