一. 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操作的更多相关文章

  1. 报表中的Excel操作之Aspose.Cells(Excel模板)

    原文:报表中的Excel操作之Aspose.Cells(Excel模板) 本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件.这个组件的强大之处,就不多说,对于我们的报表总是会有导 ...

  2. python中的赋值操作和复制操作

    之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值.但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间.下面通过一个例子说明: p=[0,1,2,3,4 ...

  3. python中的赋值操作

    参考:https://www.cnblogs.com/andywenzhi/p/7453374.html?tdsourcetag=s_pcqq_aiomsg(写的蛮好) python中的赋值操作“=” ...

  4. python中的日志操作和发送邮件

    1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...

  5. python中OS模块操作文件和目录

    在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...

  6. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  7. Python中的json操作

    Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...

  8. Python中的切片操作

    python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>& ...

  9. python中的句柄操作

    python中的句柄操作 制作人:全心全意 通过窗口标题获取句柄 import win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat ...

随机推荐

  1. 数据库垂直拆分,水平拆分利器,cobar升级版mycat(转)

    原文:数据库垂直拆分,水平拆分利器,cobar升级版mycat 1,关于Mycat Mycat情报 基于阿里的开源cobar ,可以用于生产系统中,目前在做如下的一些改进: 非阻塞IO的实现,相对于目 ...

  2. MySQL第一天

    数据库课程体系 在PHP阶段,将数据库分为三个阶段:     基础阶段(就业班第一个阶段): 6天, mysql数据库的基本操作(增删改查), 以及一些高级操作(视图, 触发器,函数,存储过程等), ...

  3. HDU 4193 Non-negative Partial Sums(单调队列)

     题目大意: 给定一个长度为n的循环序列.从n个不同位置開始,问有几个位置使得一下情况成立:全部前缀的和都大等于0(n <=1000000). 下午的训练赛.之前没学过单调队列所以用的线段树 ...

  4. Zookeeper配置说明

    转载自:https://my.oschina.net/u/2338362/blog/399361 Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将分别进 ...

  5. 和openjdk在一起的第一天-第一次接触有些生疏,就先熟悉一下吧

    暂时搞到了openjdk7,就将就着看吧,(为什么csdn全部都是收费啊,llllj),但是还是决定先读这个openjdk7 还有,不知道怎么的就想试试markdown,也不知道好用不 hello w ...

  6. 我常用的VS快捷键

    (VS2008) F4       属性窗口F5       调试F6       停止调试F9  断点F10 单步执行F11 单步执行进入函数 Ctrl + K, Ctrl + F         ...

  7. linux shell 入门

    本文是本人学习linux shell入门收集整理,不完全原创. 参考博文: http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html ...

  8. django admin基础

    通过onetoonefiled扩展得到的不会在添加user是自动添加原因是onetoonefiled只是一个model 可以they are just Django models that happe ...

  9. Java基础教程:泛型基础

    Java基础教程:泛型基础 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚 ...

  10. 设计模式之单例模式--instance

    <?php header('Content-Type:text/html;charest=utf-8'); /** * 设计模式之单例模式 * $_instance必须声明为静态的私有变量 * ...