python中的excel操作
一. Excel在python中的应用
存测试数据
有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到。测试的时候就从数据库中读取出来。这点是非常重要的!
存测试结果
二. Excel中的三大对象:
- Workbook
- Sheet
- Cell
在excel中,主要的操作是在sheet中对数据进行读、写、修改的操作
操作流程:
1. 打开一个excel文件,或者创建一个excel文件,生成一个工作簿(workbook)对象
2. 获取某个表单(sheet)对象
3. 在表单对象中的单元格(cell)中读、写、修改数据
三. Excel库
python中有好几个与excel操作相关的模块
xlrd库:从excel中读取数据,支持xls, xlsx
xlwt库:对excel进行修改操作。不支持对xlsx格式的修改
xlutils库:在xlwt和xlrd中,对一个已存在的文件进行修改
官方说法:
openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files
网址:http://www.python-excel.org/
四. openpyxl--常用操作
from openpyxl import load_workbook
#打开一个已存在的excel文件
wb = load_workbook("sample.xlsx")
from openpyxl import Workbook
#创建一个新的excel文件
wb = Workbook("hello.xlsx")
#获取sheet对象,get_sheet_by_name是旧的方法,新的方法是wb[sheetname]
sh = wb.get_sheet_by_name("Sheet1")
#创建一个新的sheet
sh_new = wb.create_sheet("新建的sheet")
#获取指定单元格中的值
cl = sh.cell(row=1, column=1).value
#修改指定单元格的值
sh.cell(row=1, column=1).value = "hello"
#获取当前sheet的数据总行数
rows = sh.max_row
#获取当前sheet的数据总列数
columns = sh.max_column
#保存当前workbook中所有的修改
wb.save("sample.xlsx")
注意:openpyxl中列和行的起始下标都是1
五. 实例
#引入库
from openpyxl import load_workbook
#加载一个excel文件,进入到工作簿
wb = load_workbook("testdata.xlsx")
#获取指定的表单
sh = wb["Sheet1"]
#获取表单中数据
name = sh.cell(row=2, column=1).value
print(name)
#修改表单中的数据--修改数据,注意在写操作时,必须先关闭excel文件
sh.cell(row=2, column=3).value = 18
#保存修改数据的操作--保存数据
wb.save("testdata.xlsx")
#获取总行数、总列数
print(sh.max_row)
print(sh.max_column)
print(sh.cell(row=3, column=3).value)
sh.cell(row=3, column=3).value = 25
print(sh.cell(row=3, column=3))
#读取所有数据,按行读取
for index in range(1, sh.max_row + 1):
print("行号: ", index)
for sub_i in range(1, sh.max_column + 1):
print("列号: ", sub_i, "内容: ", sh.cell(row=index, column=sub_i).value)
结果:
小翟
3
3
18
<Cell 'Sheet1'.C3>
行号: 1
列号: 1 内容: name
列号: 2 内容: sex
列号: 3 内容: age
行号: 2
列号: 1 内容: 小翟
列号: 2 内容: 男
列号: 3 内容: 18
行号: 3
列号: 1 内容: 瑛子
列号: 2 内容: 女
列号: 3 内容: 25
附excel内容:

python中的excel操作的更多相关文章
- 报表中的Excel操作之Aspose.Cells(Excel模板)
原文:报表中的Excel操作之Aspose.Cells(Excel模板) 本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件.这个组件的强大之处,就不多说,对于我们的报表总是会有导 ...
- python中的赋值操作和复制操作
之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值.但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间.下面通过一个例子说明: p=[0,1,2,3,4 ...
- python中的赋值操作
参考:https://www.cnblogs.com/andywenzhi/p/7453374.html?tdsourcetag=s_pcqq_aiomsg(写的蛮好) python中的赋值操作“=” ...
- python中的日志操作和发送邮件
1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...
- python中OS模块操作文件和目录
在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...
- Python中的字符串操作总结(Python3.6.1版本)
Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...
- Python中的json操作
Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...
- Python中的切片操作
python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>& ...
- python中的句柄操作
python中的句柄操作 制作人:全心全意 通过窗口标题获取句柄 import win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat ...
随机推荐
- linux下安装mysql问题总结(一)mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended
linux下安装mysql数据库 linux版本:CentOS release 6.8 (Final) mysql版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.g ...
- MySQL中too many connections超出最大连接数的处理方法
MySQL最大连接数的问题 在MySQL的源码中,默认最大的连接数是16384 {"max_connections", OPT_MAX_CONNECTIONS, "The ...
- Android系统移植与调试之------->build.prop文件详细赏析
小知识:什么是build.prop? /system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件.这个文件是如 ...
- [转载]分布式session处理方案
伴随网站业务规模和访问量的逐步发展,原本由单台服务器.单个域名的迷你网站架构已经无法满足发展需要. 此时我们可能会购买更多服务器,并且启用多个二级子域名以频道化的方式,根据业务功能将网站分布部署在独立 ...
- spring 异步处理request
转自:http://blog.csdn.net/u012410733/article/details/52124333Spring MVC 3.2开始引入Servlet 3中的基于异步的处理reque ...
- 大型网站系统与 Java 中间件实践
http://wanglizhi.github.io/2016/07/27/JavaWeb-And-MiddleWare/ 第一章 分布式系统介绍 分布式系统的定义:组件分布在网络计算机上,组件间仅仅 ...
- centos中安装php7
centos7下安装php7 php7 centos7 安装PHP7 首先安装一些必须的依赖,这里就不阐述了,后面文章再细说 yum install -y \ gcc-c++ autoconf \ l ...
- Swing 添加超链接 打开页面
http://lazycat774880994.iteye.com/blog/567412 Swing中打开一个连接或者web页面的一些记录,这几种方式是在项目中有这样子用到过,特来记录一下,以便下 ...
- linux驱动的异步通知(kill_fasync,fasync)---- 驱动程序向应用程序发送信号
应用程序 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include < ...
- php数组函数-array_pop()
array_pop()函数删除数组中的最后一个元素(出栈). array_pop(array) array:必需.规定数组 返回值:返回数组的最后一个值.如果数组是空,或者不是一个数组,将返回NULL ...