博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python读写excel表格的方法一
阅读量:5755 次
发布时间:2019-06-18

本文共 2549 字,大约阅读时间需要 8 分钟。

目的:实现用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 ,如需转载请自行联系原作者
你可能感兴趣的文章
apache安装报错undefined reference ssl
查看>>
F#初学笔记06
查看>>
java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
查看>>
我的工具:文本转音频文件
查看>>
【跃迁之路】【460天】程序员高效学习方法论探索系列(实验阶段217-2018.05.11)...
查看>>
C++入门读物推荐
查看>>
TiDB 源码阅读系列文章(七)基于规则的优化
查看>>
Spring之旅第八站:Spring MVC Spittr舞台的搭建、基本的控制器、请求的输入、表单验证、测试(重点)...
查看>>
数据结构与算法——常用排序算法及其Java实现
查看>>
你所不知的Webpack-多种配置方法
查看>>
webpack+typescript+threejs+vscode开发
查看>>
python读excel写入mysql小工具
查看>>
如何学习区块链
查看>>
搜索问题的办法
查看>>
微信分销系统商城营销5大重点
查看>>
求职准备 - 收藏集 - 掘金
查看>>
Linux-Centos启动流程
查看>>
后端技术精选 - 收藏集 - 掘金
查看>>
前端技术选型的遗憾和经验教训
查看>>
Ossim下的安全合规管理
查看>>