python 操作exls学习之路1-openpyxl库学习
这篇要讲到的就是如何利用Python与openpyxl结合来处理xlsx表格数据。Python处理表格的库有很多,这里的openpyxl就是其中之一,但是它是处理excel2007/2010的格式,也就是xlsx系列,如果要处理以前的2003的表格(xls),那么则要用另外的库。如果只是要进行表格数据读取和进行简单的写数据的话,推荐使用openpyxl。下篇会介绍到另外一个操作表格文档的库,叫做xlsxwriter,这是一个专门写表格的库,在写数据和进行表格画图方面比较强大(不能读取和修改表格),因为这次分析数据最后需要进行绘图展示(openpyxl虽然也能作图,但是功能有限),所以也会用到这个库。
openpyxl库学习
1、wb = Workbook()
2、获取sheet工作区间
1)# 激活worksheet,得到一个worksheet,默认得到sheet1
ws = wb.active
2)#命名sisilast格式,插入到最后
ws2 = wb.create_sheet("sisilast")
3)#命名sisilast格式,插入到最开始的位置
ws3 = wb.create_sheet("sisifrist",0)
3、给指定单元格赋值
1)直接写数据到指定的单元格中
>>>ws['A1'] = 100
2)使用openpyxl.worksheet.Worksheet.cell()
方法操作某行某列的某个值:
>>> ws.cell(row=6,column=5,value='kaixin')
注意:
- 当worksheet在内存中被创建时,是没有包含cells的,cells是在首次访问时创建.
- 可以循环在内存中创建cells,这时不指定他们的值也会创建该cells些:(创建8x8cells)
>>> for i in range(1,9):
for j in range(1,9):
ws.cell(row=i,column=j,value=i*j)
3.也可以使用 openpyxl.worksheet.Worksheet.iter_rows()
方法:(需要指定行->行,截止列)
4.也可以使用 openpyxl.worksheet.Worksheet.iter_cols()
方法:(需要指定列->列,截止行)
5.如果你需要遍历所有文件的行或列,可以使用openpyxl.worksheet.Worksheet.rows()
属性:>>>tuple(ws.rows)
or openpyxl.worksheet.Worksheet.columns() 属性:>>>tuple(ws.columns)
4、# 附加一行,从第一列开始附加
ws.append([1,2,3])
5、#保存文件到指定位置
wb.save("D:/test/test.xlsx")
6、修改sheet名称
创建的sheet的名称会自动创建,按照sheet,sheet1,sheet2自动增长,通过title属性可以修改其名称。
>>> from openpyxl import Workbook
>>> wb = Workbook()
>>> ws = wb.create_sheet("haha")
>>> ws.title = "heihei"
>>> wb.save("D:/test/heihei.xlsx")
7、查看workbook中的所有worksheets名称:openpyxl.workbook.Workbook.get_sheet_names()
>>> print(wb.sheetnames)
['Sheet', 'heihei']
8、直接访问单元格
>>> value1 = ws['A3']
9、openpyxl.load_workbook()已经存在的workbook:
10、使用公式
python 操作exls学习之路1-openpyxl库学习的更多相关文章
- Python大神成长之路: 第二次学习记录
数据类型 数据操作 bytes 类型 "".encode() 编码-->二进制 "".decode() 解码 判断字符串里的字符是否全为 ...
- Android开发学习之路-二维码学习
这个月装逼有点少了,为什么呢,因为去考软件射鸡师了,快到儿童节了,赶紧写篇博纪念一下逝去的青春,唔,请忽略这句话. 二维码其实有很多种,但是我们常见的微信使用的是一种叫做QRCode的二维码,像下面这 ...
- Java学习之路-Spring的HttpInvoker学习
Hessian和Burlap都是基于HTTP的,他们都解决了RMI所头疼的防火墙渗透问题.但当传递过来的RPC消息中包含序列化对象时,RMI就完胜Hessian和Burlap了. 因为Hessian和 ...
- MySQL学习之路2-数据库and数据表的基本操作
数据库基本操作 查看.选择数据库: show databases; use <databasename>; 创建数据库:create database <dbname> cha ...
- Python学习之路-Day2-Python基础3
Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...
- Python操作excel(xlrd和xlwt)
Python操作excel表格有很多支持的库,例如:xlrd.xlwt.openpyxl.win32com,下面介绍使用xlrd.xlwt和xlutils模块这三个库不需要其他的支持,在任何操作系统上 ...
- 微软企业库5.0 学习之路——第二步、使用VS2010+Data Access模块建立多数据库项目
现在我就开始进入学习之路的第二步——Data Access模块,这个模块是企业库中被使用频率最高的模块,它很好的封装了数据库操作应用,为我们进行多数据库系统开发提供了便利,只需更改配置文件就 可以很快 ...
- Android开发学习之路--Android系统架构初探
环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块-& ...
- python 操作excle 之第三方库 openpyxl学习
目录 python 操作excle 之第三方库 openpyxl学习 安装 pip install openpyxl 英文文档链接 : 点击这里~ 1,定位excel 2,读取excle中的内容 3, ...
随机推荐
- 如何修改Eclipse在Debug时背景色
比较喜欢暗色的Eclipse主题,安装了Eclipse color theme,使用了Oblivion这个黑色背景的主题. 更换了暗色的Eclipse主题后,Debug时看不清文字: 需要更背景颜色, ...
- h4和h5的区别
h4和h5的区别 相关文章 微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻[▄ (页底留言开放,欢迎来吐槽) ●●● 1.HTML5为什么只需要写<!DOCTYPEHTML&g ...
- mac10.9+php5.5.15+brew0.9.5的安装
Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具. Mac 自带ruby 所以安装起来很方便,同时它也会自动把git ...
- urllib2.open(req).read() 报403的错误:怎么办?
http://www.douban.com/group/topic/18095751/ heads = {'Accept':'text/html,application/xhtml+xml,appli ...
- SQL阻塞原因造成系统多功能无响应的分析解决思路
最近遇到一个sqlserver项目,月底会出现多个财务相关功能出现不定期操作无响应问题 通过查询SQL阻塞信息,定位到阻塞源头spid.该会话的状态.等待事件及执行的SQL脚本 根据spid查询该会话 ...
- Android 百度地图的使用
可以参考百度官网Android开发指南. 里面有详细的步骤和Sample例子. http://lbsyun.baidu.com/index.php?title=androidsdk/guide/int ...
- Android分享中,如何过滤指定的应用,并且对不同的分享方式发送不同的内容?
网上找到的一篇关于: 针对不同的应用,使用不同的方式的文章.原文地址 String contentDetails = ""; String contentBrief = " ...
- SSIS 项目部署模型
微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 项目部署模型 关于部署 SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integ ...
- 53. Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- jsp中的<jsp:setProperty>中的param属性
比如: <jsp:setProperty name="lader" property="edge" param="num" /> ...