1.openpyxl包的导入

Dos命令行输入 pip install openpyxl==2.3.3

这里注意一下openpyxl包的版本问题 版本装的太高有很多api不支持了,所以笔者这里用的是2.3.3

验证是否安装成功:dos 命令行 导入 import openpyxl

2.一个简单的在excel中写入数据的操作

#未从文件系统生成真的excel文件,仅仅是实例化了一个Workbook实例

wb = Workbook()#workbook类似一个excel文件

# wb.active获取第一个sheet  .active默认为第一个sheet

ws = wb.active

在excel中写入数据的方法:

# 方法1:直接在表格中赋值

ws['A1'] = 42

ws["A2"]=u"中国" #写入中文

ws["A1"]='12%'  #写入12%

ws["A2"]=31.75  #写入小数

ws["A3"]=datetime.datetime.now()  #写入日期

# 方法2:在表格中添加一行,每一个元素占一格

#备注:如果excel第一行已经有数据了,用ws.append会替换掉之前第一行的数据。如果不想被覆盖就用ws['xx'] = xx的方法

ws.append([1, "china", "中国"])

ws.append(['qrp',18])

ws.append(['qrp','love swimming'])

# 在excel中写入日期对象,会自动转化为字符串

import datetime

print type(datetime.datetime.now())

ws['A3'] = datetime.datetime.now()

#生成真实的excel文件,保存

wb.save(u"第2个文件.xlsx")

3.对sheet的操作

Excel默认有一个sheet (注意,这里根据使用的excel不一样,有的是默认sheet个数不一样)

#0.修改默认sheet的方法

ws0=wb.active  #active默认为第一个sheet

print ws0.title

ws0.title="python"

print ws0.title

#1.在excel的第一个位置加入一个sheet

ws2 = wb.create_sheet("Mysheet", 0)

#2.在excel的的最后位置加入一个sheet(一般默认加在最后一个)

ws1 = wb.create_sheet(u"光荣之路")

#3.修改sheet的名字

ws2.title=u"python excel 操作练习"

可以在新建sheet的时候就修改sheet名字,例如

ws2 = wb.create_sheet(title=u"新建的sheet2")

#4.通过名字获取某个sheet对象

ws3 = wb[u"python excel 操作练习"]

#5.通过名字获取某个sheet对象的第二种方法

ws4 = wb.get_sheet_by_name(u"光荣之路")

#6.通过索引号获取某个sheet对象的第三种方法

ws5=wb.get_sheet_by_name(wb.sheetnames[0])

print ws5.title

#7.打印所有sheet的名字的两种方法,用列表存储所有名字

print wb.get_sheet_names()

Print wb.sheetnames

#8.设定sheet的背景样色

#颜色编码的网址:http://www.computerhope.com/htmcolor.htm

ws1.sheet_properties.tabColor = "FFFF00"

ws2.sheet_properties.tabColor = "FFA62F"

#9.打印sheet的名字

print ws3.title

print ws4.title

#10.遍历输出excel中的所有sheet名字

for sheet in wb:

print(sheet.title)

4.对cell单元格的操作

#coding utf-8

from openpyxl import Workbook

wb=Workbook()

ws = wb.create_sheet(u"光荣之路")

#1.给单元格添加数据

ws.append(['gilr','18'])

ws['A2']=u'男生'

ws['B2']='20'

#2.修改并读取一个cell的内容

cell.value=u"30"

print cell.value

#3.通过单元格字母标识获取对象

cell=ws['B2']

print cell.value,type(cell.value)

print ws['A2'].value,type(ws['A2'].value)

#4.通过单元格序号,设定某个单元格对象的值

#单元格和列,均从1开始编号

cell2=ws.cell(row=4, column=1, value=u"我是通过行列加进来的")

print cell2.value

#5.通过循环创建100个单元格

for i in range(1,11):

for j in range(1,11):

ws.cell(row=i, column=j, value=str(i)+u"行"+str(j)+u"列")

#6获取最大行和最大列

print ws.max_row

print ws.max_column

print ws.min_row

print ws.min_column

#7.获取所有单元格的值和坐标值

for row in ws.iter_rows():#获取了所有的行

for cell in row:   #获取每一行中每个单元格

print cell,cell.value,cell.coordinate  #打印单元格,单元格的值,cell.coordinate表示单元格的坐标

#range_string="A1:j10"

for row in ws.iter_rows(range_string="A1:j10"):#获取了所有的行

for cell in row:   #获取每一行中每个单元格

print cell,cell.value,cell.coordinate  #打印单元格,单元格的值,cell.coordinate表示单元格的坐标

#8.get_column_letter(col)函数可以获取到列的字母

#{0}.format(xx)字符串模板 将xx的值赋值给{0}

for row in range(10,20):

for col in range(10,20):

ws1.cell(row=row ,column=col ,value='{0}'.format(get_column_letter(col)))

#定义excel文件保存后的文件名

dest_filename = u'excel重命名文件.xlsx'

wb.save(dest_filename)

5.图片操作

图片操作之前先要安装一个PIL的包。Pip install 命令不好使 直接用可执行文件。

from openpyxl import Workbook

from openpyxl.drawing.image import Image

wb = Workbook()

ws = wb.active

ws['A1'] = 'You should see three logos below'

# create an image

img1 = Image('1.png')

img2=Image("1.png")

# add to worksheet and anchor next to cells

ws.add_image(img1, "A3")

ws.add_image(img2, "C5")

#相同的图片对象没办法赋给多个单元格,如果这样做会导致图片重叠在一起。

#但是可以生成两个不同的图片对象来给多个单元格赋值。

wb.save(u'图片操作.xlsx')

6.获取行和列的操作

from openpyxl import Workbook

#未从文件系统生成真的excel文件,仅仅是实例化了一个Workbook实例

wb = Workbook()

ws=wb.active

ws.append([1,2])

ws.append([3,4])

print ws.rows  #打印所有的行

print ws.rows[0][0] #打印第一行第一个 注意角标从0开始算起

print ws.rows[0][0].value #打印第一行第一个的值

print ws.columns  #打印所有的列

print ws.columns[1][1]

print ws.columns[1][1].value

wb.save(u"获取行和列的值.xlsx")

7.workbook中的缺省参数

filename(str or file-like object):是一个Excel文件的路径或者是一个类文件对象。
read_only(bool):只读模式,不可编辑文件。缺省为False
use_iterators(bool):是否调用延迟加载。缺省为False
keep_vba(bool):是否保持VBA的内容。缺省为False
guess_type(bool):获取单元格内容的类型而且不能从文件中读取他。缺省为False
date_only(bool):控制包含有公式的单元格是否有任何公式,或者存储着最后读取Excel表的读取时

from openpyxl import Workbook

python excel操作总结的更多相关文章

  1. Python+Excel 操作对比

    前言 从网页爬下来的大量数据需要excel清洗成堆的科学实验数据需要导入excel进行分析作为一名面向逼格的Python程序员该如何合理而又优雅的选择生产力工具呢? 得益于辛勤劳作的python大神们 ...

  2. python excel操作

    python操作excel表格(xlrd/xlwt)转载:http://www.cnblogs.com/zhoujie/p/python18.html   最近遇到一个情景,就是定期生成并发送服务器使 ...

  3. python excel操作 练习-#操作单列 #操作A到C列 #操作1到3行 #指定一个范围遍历所有行和列 #获取所有行 #获取所有列

    ##操作单列#操作A到C列#操作1到3行#指定一个范围遍历所有行和列#获取所有行#获取所有列 #coding=utf-8 from openpyxl import Workbook wb=Workbo ...

  4. Python Excel操作库

    xlrd:支持.xls..xlsx读 xlwt:只支持.xls写 xlutils:只支持.xls读写 依赖于xlrd和xlwt xlwings:支持.xls读,.xlsx读写 可以实现Excel和Py ...

  5. Python Excel 操作

    1.Excel Code import os import time import re import win32com.client def dealpath(pathname='') -> ...

  6. python excel操作 练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称。每个sheet有个底色

    练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称.每个sheet有个底色 #coding=utf-8 from openpyxl import Workb ...

  7. Python Excel操作——xlrd、xlwd

    读取 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workbook('excel.xls') 3.获取一个工作表 1 table = dat ...

  8. 【Python】 更棒的Excel操作模块xlwings

    [xlwings] 说到Python操作Excel,有好多模块都可以支持这个工作.比如最底层的win32模块不仅可以操作Excel,还可以操作其他一众windows的软件. 其他的比较熟悉的有xlrd ...

  9. python 对excel操作用法详解

    在python中,对excel表格读,写,追加数据,用以下三个模块: 1.wlrd 读取excel表中的数据 2.xlwt 创建一个全新的excel文件,然后对这个文件进行写入内容以及保存. 3.xl ...

随机推荐

  1. codeforces 755C. PolandBall and Forest

    C. PolandBall and Forest time limit per test 1 second memory limit per test 256 megabytes input stan ...

  2. php字符串比较

    比较两个字符串是否相等,最常见的方法就是使用“===”来判断,至于它和“==”的区别,简单来说 就是前者强调“identical”类型也要求一样:后者要求“equal”,值相同就可以了.或者使用str ...

  3. 使用(Drawable)资源——StateListDrawable资源

    StateListDrawable用于组织多个Drawable对象.当使用StateListDrawable作为目标组件的背景.前景图片时,StateListDrawable对象所显示的Drawabl ...

  4. --@angularJS--$scope.watch监听模型变化

    $watch简单使用 $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. $watch(watchExpression, listener, objectEqua ...

  5. NodeMCU之旅(一):构建、刷入固件,上传代码

    扬帆起航 本系列文章将试图实现,使用Web页面远程点亮led.具体包括: 在NodeMCU上搭建HTTP服务器,使其可以通过Web页面配置要接入的网络. 在配置页面可以显示附近中英网络名与信号强度. ...

  6. CentOS7 部署 tomcat

    1. 准备tomcat账号 本着最小权限原则,新建账号来安装tomcat. 命令:useradd , passwd 2. 配置防火墙 2.1. tomcat.xml 在/etc/firewalld/s ...

  7. docker的资源限制cpuset cpuquota memory

    总结 目前,公司7u已经不再使用lxc,转而使用libcontainer 即native docker对cpuquota的支持目前是有问题的,一般大家使用docker的时候,主要是对memory,cp ...

  8. angular实现form验证

    先上效果页面:https://lpdong.github.io/myForm-1/ 其中几个知识点 1.angularJs提供了几个新的type类型: type="password" ...

  9. HTML5 & CSS3初学者指南(3) – HTML5新特性

    介绍 本文介绍了 HTML5 的一些新特性.主要包含以下几个方面: Web 存储 地理位置 拖放 服务器发送事件 Web存储 HTML5 Web 存储的设计与构想是一个更好的机制来存储客户端的网络数据 ...

  10. Js中Array数组学习总结

    第一次写博客...有点方... 小白一枚(是真的小白),自学前端,下面来说说我在学习过程中总结的一些数组操作,如果说哪有错误,请各位大神多多指出,小的虚心接受. 引用类型分为Object类型(所谓的对 ...