开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Python读写excel表格的方法一

简介:
+关注继续查看

目的:实现用python做excel的读取、新增、修改操作。


环境:ubuntu 16.04  Python 3.5.2


用python读写文档,一般是操作txt文件或者可以用记事本打开的文件,因为这个操作很直接,不需要导入其他模块,但如果想要对excel表格进行操作,就需要导入其他模块,包括:xlrd(读取),xlwt(写入),xlutils(复制),一般是这三个模块,且需要另外下载,http://pypi.python.org/pypi/模块名。


表格的读取:

读取只需要导入xlrd模块:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import xlrd
 
filename = 'test.xls'
 
# 以xlrd打开表格给book
book = xlrd.open_workbook(filename)
# 获取工作表的方法之一,用下标。
sheel_1 = book.sheet_by_index(0)
# 打印第一个工作表的名的方法之一。
print("Worksheet name(s): ",book.sheet_names()[0])
# 打印表格文件中工作表的数量
print('book.nsheets',book.nsheets)
# 打印工作表名方法之二和打印这个表的总行数和总列数。
print('sheel_1.name:',sheel_1.name,'sheel_1.nrows:',sheel_1.nrows,'sheel_1.ncols:',sheel_1.ncols)
# 打印第一个工作表中行0列1的值,用下标。
print('A1:',sheel_1.cell_value(rowx=0,colx=1))
# 打印单元格的另一种方法
print('A2:',sheel_1.cell_value(0,2))


表格的新增:

新增只需要导入xlwt模块:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import xlwt
 
filename = 'test.xls'
 
book = xlwt.Workbook()
sheet_1 = book.add_sheet('hello')
sheel_2 = book.add_sheet('word')
sheet_1.write(0,0,'hello')
sheet_1.write(0,1,'world')
row1 = sheet1.row(1)
row1.write(0,'A2')
row1.write(1,'B2')
  
sheet_1.col(0).width = 10000
  
sheet_2 = book.get_sheet(1)
sheet_2.row(0).write(0,'Sheet 2 A1')
sheet_2.row(0).write(1,'Sheet 2 B1')
sheet_2.flush_row_data()
  
sheet_2.write(1,0,'Sheet 2 A3')
sheet_2.col(0).width = 5000
sheet_2.col(0).hidden = True
  
book.save(filename)


修改已经存在的表格

一般修改表格步骤:导入模块--xlrd读取表格--xlutils复制读取的表格--xlwt对表格修改--xlwt保存表格--删除旧表格。


解析:对excel同时读写是不行的,细心会发现office操作表格时也是这个步骤,先是读取,如果修改了数据,会先复制一份,产生一个带$的临时隐藏文件,修改是在临时文件上操作,当用户保存时会删除旧的文件,把临时文件命名为旧文件名,感觉就像直接读写了表格,所以你没有正常关闭的表格会有一个临时文件,你没保存的东西全部在里面,也可能是部分。


下面演示一下实际python应用步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import xlrd
import xlwt
from xlutils.copy import copy
 
# 文件名变量
filename = 'test.xls'
 
# 读取文件
book_r = xlrd.open_workbook(filename)
 
# 复制原表格
book_w = copy(book_r)
 
# 以编辑方式得到文件的第一个工作表
sheet_1 = book_w.get_sheet(0)
 
# 定义要输入的内容
text = ‘This is a test of Ricky.'
 
# 定义写入表格的单元格行号,使用下标1
row = 1
 
# 定义写入表格的单元格列号,使用下标2
col = 2
 
# 把内容写入表格
sheet_1.write(row, col, text)
 
# 删除原文件
os.remove(filename)
 
# 保存修改的文件为原文件
book_w.save(filename)

说明:

1)上面那么多定义是为了说明参数的位置和意义,可以直接把值写入参数位置,但参数使用变量可以方便复用,比如在循环中;

2)读取表格的文本内容需要用value();

3)如果想要保留源文件的格式,打开部分的需要写成:

1
book_r = xlrd.open_workbook(filename, formatting_info=True)

4)sheet没有save,workbook才有save。


一次性读写表格可以参看方法二(私链)。

















本文转自RickyHuL51CTO博客,原文链接:http://blog.51cto.com/rickyh/1943649 ,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python提取pdf中的表格数据(附实战案例)
Python提取pdf中的表格数据(附实战案例)
0 0
python脚本,从mongo取数据发送html格式表格邮件
python脚本,从mongo取数据发送html格式表格邮件
0 0
windows python flask读取文件数据并返回表格
windows python flask读取文件数据并返回表格
0 0
用 Python 开发了一个 PDF 抽取表格的小工具
用 Python 开发了一个 PDF 抽取表格的小工具
0 0
接口自动化框架(Python)之 四,读取exlce表格
接口自动化框架(Python)之 四,读取exlce表格
0 0
表格数据列转行,一行Python代码轻松搞定!
数据的列转行操作,在实际工作过程中应用非常广泛。现在用一行Python代码就可以轻松搞定。
0 0
Python编程:通过百度文字识别提取表格数据
Python编程:通过百度文字识别提取表格数据
0 0
Python基础题型实战03-通过切片确定Excel表格中某范围的单元格数量
台上一分钟,台下十年功。从来没有懒洋洋的自由,有的是通过努力拥有更广阔的未来。 每个看到该文章的大家也是一样的;不要只看眼前利益,多注重长期利益。每天的坚持乘于365都是巨大的力量。每个行业都是精英,每个专业都是都有专才,重要的你是否足够努力,足够坚持。
0 0
Python自动化办公系列01-对excel表格数据进行可视化分析
查理·芒格曾说过这样一番话: 我不断地看到有些人在生活中越过越好,他们不是最聪明的,甚至不是最勤奋的,但他们是学习机器,他们每天夜里睡觉时都比那天早晨聪明一点点。 优秀的人之所以能成为人中翘楚,往往就是因为他们是学习机器,能做到持续学习,不断地自我精进和迭代,一点点地进步和成长,将大多数人甩在身后。反过来,一些人之所以往后退,最本质的原因,还不是因为无法做到持续学习和成长,以至于不管是业务能力,还是眼界、格局,在方方面面都落后于人。 这就是优秀和平庸之间存在巨大差距的原因所在。 成功的秘诀,说复杂也没那么复杂,其实就是成长,不断地成长,当你能做到比昨天更好,比身边的人更好,那么你想不成功都难
0 0
python opencv识别并提取表格数据
使用opencv、PaddleOCR 识别表格并提取表格数据
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载