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. EasyUI datagrid 删除的时候无法正确找到重复记录row index的问题

    EasyUI datagrid 删除的时候无法正确找到重复记录row index的问题: 如果无法正确找到重复记录的row index,就需要进行注意添加的时候所进行的 操作:如果添加的时候就是添加的 ...

  2. Windows上的音频采集技术

    在制作发布端的时候,需要采集到声卡的输出信号,以便与麦克风的输入信号进行混音,对于音频处理的技术,主要有如下几种: 采集麦克风输入 采集声卡输出 将音频数据送入声卡进行播放 对多路音频输入进行混音处理 ...

  3. Docker,容器,虚拟机和红烧肉

    Docker火了,有多火你自己看看下面的统计数据就知道了 在发布4个月的时间里,下载量就超过50000次,github上收到超过4000个star,涌现了超过100个贡献者,并且有超过150个项目和超 ...

  4. Bootstrap入门(二十六)JS插件3:滚动监听

    很多时候我们在浏览一些网页的时候,导航条会根据我们浏览网页的进度而发生不同的变化,这种就是滚动监听. 你的顶栏导航,添加data-spy="scroll"到您想要刺探(最典型的是这 ...

  5. DotNet加密方式解析--数字签名

    马上就要过年回村里了,村里没有wifi,没有4G,没有流量,更加重要的是过几天电脑就得卖掉换车票了,得赶紧写几篇博客. 数据安全的相关技术在现在愈来愈变得重要,因为人们对于自身的信息都有一种保护的欲望 ...

  6. SQL Server事务、隔离级别详解(二十九)

    前言 事务一直以来是我最薄弱的环节,也是我打算重新学习SQL Server的出发点,关于SQL Server中事务将分为几节来进行阐述,Always to review the basics. 事务简 ...

  7. 字符集编码与Python(一)编码历史

    编码历史 ASCII ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于 ...

  8. codeforces div2.C

    C. New Year and Rating time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  9. 【iOS 录音转码MP3及转码BASE64上传】

    iOS 录音转码MP3及转码BASE64上传 一,开始录音 NSLog(@"开始录音"); [self startRecord]; - (void)startRecord { // ...

  10. (@WhiteTaken)设计模式学习——抽象工厂模式

    抽象工厂模式,可以向客户端提供一个接口,而客户端不用指定具体的类型创建对象,却能够创建多个产品族(一类具有共性产品,如地域等)的对象. 下面直接上代码. 1.苹果需要实现水果的接口,而苹果可以有北方的 ...