Openpyx是一个用于读写Excel2010各种xlsx/xlsm/xltx/xltm文件的python库。

现在大多数用的都是office2010了,如果之前之前版本的可以使用xlrd读,xlwt写,这里就不介绍了。

入门范例

from openpyxl import Workbook

wb=Workbook()#创建一个工作簿
ws=wb.active#获取工作的激活工作表 ws['A1']=42#在A1中插入内容
ws.append([1,2,3])#这里其实是在第二行插入了3个数字,占用了三个单元格 import datetime
ws['A2']=datetime.datetime.now()#在A2中插入了当前时间,把上一句的那个1挤掉了 wb.save('sample.xlsx')#保存到当前目录

简单操作

创建一个workbook

一般创建workbook后至少会有一个worksheet,我们可以通过active属性来获取。

我们还可以通过create_sheet()方法来创建新的worksheet。

一般默认创建的sheet的名字是序列化的,我们可以更改title属性来设置想要的名称。

一旦我们指定了名称,可以使用key的方法获取,wb['Title']

from openpyxl import Workbook
wb=Workbook()
ws=wb.active ws1=wb.create_sheet('Mysheet')#默认插入到最后
ws2=wb.create_sheet('Mysheet1',0)#指定插入到第一个位置 ws.title='New Title' ws3=wb['New Title']

如果我们想要遍历所有的sheet,可以用for循环。

for sheet in wb:
print(sheet.title)

我们还可以在同一个workbook内拷贝sheet

source=wb.active
target=wb.copy_worksheet(source)

控制单元格

单元格可以通过key的方式直接获取,如果不存在这个key,会创建一个。

并且可以直接指定单元格的值

c=ws['A3']
ws['A4']=4

另外一直是通过worksheet的cell()方法来指定单元格。

d=ws.cell(row=4,colum=2,value=10)
如果我们在内存中创建一个worksheet,它是默认没有包含cell的,只有第一次使用的时候才会创建。

所以我们可以提前将所需要的单元格过一遍,不指定值,就可以创建出来。

for i in range(1,101):
for j in range(1,101):
ws.cell(row=i,colum=j)

矩阵型的单元格组可以使用切片获取:

cell_range=ws['A1':'C2']

单列或者单行的单元格,也是类似的获取方式

colC=ws['C']
col_range=ws['C:D']
row10=ws[10]
row_range=ws[5:10]

或者采用迭代器的方法,iter_rows()和iter_cols()方法。

for row in ws.iter_rows(min_row=1,max_col=3,max_row=2):
for cell in row:
print(cell)

数据存储

一旦我们得到一个cell,我们就可以指定值了。

c.value='hello world'
print(c.value) d.value=3.14
print(d.value)

保存文件

workbook的save方法,指定文件保存路径即可。

不过save方法会覆盖相同路径的文件。

wb=Workbook()
wb.save('sample.xlsx')

加载文件

需要引入load_workbook()

from openpyxl import load_workbook

wb2=load_workbook('sample.xlsx')
print(wb2.get_sheet_names())

几个范例

写workbook

在一个book中创建了3个sheet。

from openpyxl import Workbook
from openpyxl.compat import range
from openpyxl.utils import get_column_letter wb=Workbook()
dest_filename='empty_book.xlsx' ws1=wb.active
ws1.title='range names'
for row in range(1,40):
ws1.append(range(600)) ws2=wb.create_sheet(title='Pi')
ws2['F5']=3.14 ws3=wb.create_sheet(title='Data')
for row in range(10,20):
for col in range(27,54):
ws3.cell(column=col,row=row,value='{0}'.format(get_column_letter(col)))
print(ws3['AA10'].value) wb.save(filename=dest_filename)

读取一个workbook

from openpyxl import load_workbook

wb=load_workbook(filename='empty_book.xlsx')
sheet_ranges=wb['range names']
print(sheet_ranges['D18'].value)

其他诸如插入图片、构建图表等情况,用到的时候再讲解。

爬虫入门【9】Python链接Excel操作详解-openpyxl库的更多相关文章

  1. Python对Excel操作详解

      Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl   ...

  2. Python 字典(Dictionary)操作详解

    Python 字典(Dictionary)的详细操作方法. Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字 ...

  3. 【python】Python 字典(Dictionary)操作详解

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'} ...

  4. Python 元组(Tuple)操作详解

    Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号, 列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 一.创建元组 代码如下: tup1 = (' ...

  5. 爬虫入门之jsonPath PhantomJS与 selenium详解(六)

    1 jsonPath数据格式 pip安装: pip install jsonpath 用来解析json格式的字符串,类似于xpath (1) json对象的转换 json.loads() json.d ...

  6. Python爬虫之爬取淘女郎照片示例详解

    这篇文章主要介绍了Python爬虫之爬取淘女郎照片示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本篇目标 抓取淘宝MM ...

  7. python/ORM操作详解

    一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...

  8. python第七篇:Python 列表操作详解

    Python列表操作详解 list函数 list()   #生成一个空的列表 list(iterable)  #用可迭代对象初始化一个列表 列表的 and 运算和 or 运算 列表and运算 > ...

  9. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

随机推荐

  1. MBProgressHUD 设置透明背景

    MBProgressHUD 默认使用MBProgressHUDBackgroundStyleBlur 类型 MBProgressHUDBackgroundStyleBlur使用了毛玻璃效果 ,我们要把 ...

  2. 不懂Git,别说自己是程序猿–20分钟git快速上手(转)

    在Git如日中天的今天,不懂git都不好意思跟人说自己是程序猿.你是不是早就跃跃欲试了,只是苦于没有借口(契机). 好吧,机会就在今天. 给我20分钟,是的,只要20分钟, 让你快速用上git. 我们 ...

  3. 检查SSD磁盘是否开启了TRIM指令

    fsutil behavior QUERY DisableDeleteNotify 如果查询结果是“DisableDeleteNotify = 0”,代表SSD已经支持并启用Trim指令:如果提示为“ ...

  4. BootStrap modal() 如何根据返回的HTML宽度自动调整宽度?

    首先声明,如果真的这么做了也就失去了 bootstrap 多分辨率适配的好处.bootstrap 的 modal 窗口能够自动在不同分辨率下用不同的宽度,这就是它的特色呢. 以默认大小的 modal ...

  5. ((void *) 0)的含义和void的一些细节

    一.在c语言中,0是一个特殊的值,它可以表示:整型数值0,空字符,逻辑假(false).表示的东西多了,有时候不好判断.尤其是空字符和数字0之间. 为了明确的指出,0是空字符的含义,用用到了: (() ...

  6. LayerMask小结

    layerMask参数: Raycast (ray : Ray, out hitInfo : RaycastHit, distance : float = Mathf.Infinity, layerM ...

  7. atitit.恒朋无纸化彩票系统数据接入通信协议

    atitit.恒朋无纸化彩票系统数据接入通信协议 深圳市恒朋科技开发有限公司 Shenzhen Helper Science & Technology Co., Ltd. 恒朋无纸化彩票系统数 ...

  8. 老司机的应用级监控——spring?actuator

    http://mt.sohu.com/20160824/n465783118.shtml ************************************************ 1什么是sp ...

  9. html获取js中的值

    1.在html中添加标签<span id="id"></span> 2.在js代码中往id的标签塞值就可以了:$("#id").text ...

  10. dubbo入门使用

    主要参考dubbo官网demo 此处采用zookeeper注册中心进行服务协调管理 真个项目结构如下所示: dcommon : 主要用于定义服务接口, 为dconsumer,dprovider所依赖 ...