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 ,如需转载请自行联系原作者


相关文章
|
18天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
24天前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
43 3
|
11天前
|
安全
Python-打印99乘法表的两种方法
本文详细介绍了两种实现99乘法表的方法:使用`while`循环和`for`循环。每种方法都包括了步骤解析、代码演示及优缺点分析。文章旨在帮助编程初学者理解和掌握循环结构的应用,内容通俗易懂,适合编程新手阅读。博主表示欢迎读者反馈,共同进步。
|
19天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
86 5
|
28天前
|
算法 决策智能 Python
Python中解决TSP的方法
旅行商问题(TSP)是寻找最短路径,使旅行商能访问每个城市一次并返回起点的经典优化问题。本文介绍使用Python的`ortools`库解决TSP的方法,通过定义城市间的距离矩阵,调用库函数计算最优路径,并打印结果。此方法适用于小规模问题,对于大规模或特定需求,需深入了解算法原理及定制策略。
36 15
|
26天前
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
68 4
|
1月前
|
Python
Python编程中的魔法方法(Magic Methods)
【10月更文挑战第40天】在Python的世界中,魔法方法就像是隐藏在代码背后的神秘力量。它们通常以双下划线开头和结尾,比如 `__init__` 或 `__str__`。这些方法定义了对象的行为,当特定操作发生时自动调用。本文将揭开这些魔法方法的面纱,通过实际例子展示如何利用它们来增强你的类功能。
16 1
|
15天前
|
机器学习/深度学习 前端开发 数据处理
利用Python将Excel快速转换成HTML
本文介绍如何使用Python将Excel文件快速转换成HTML格式,以便在网页上展示或进行进一步的数据处理。通过pandas库,你可以轻松读取Excel文件并将其转换为HTML表格,最后保存为HTML文件。文中提供了详细的代码示例和注意事项,帮助你顺利完成这一任务。
27 0
|
2月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
138 4
|
4月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
51 0
下一篇
DataWorks