python excel操作总结
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操作总结的更多相关文章
- Python+Excel 操作对比
前言 从网页爬下来的大量数据需要excel清洗成堆的科学实验数据需要导入excel进行分析作为一名面向逼格的Python程序员该如何合理而又优雅的选择生产力工具呢? 得益于辛勤劳作的python大神们 ...
- python excel操作
python操作excel表格(xlrd/xlwt)转载:http://www.cnblogs.com/zhoujie/p/python18.html 最近遇到一个情景,就是定期生成并发送服务器使 ...
- python excel操作 练习-#操作单列 #操作A到C列 #操作1到3行 #指定一个范围遍历所有行和列 #获取所有行 #获取所有列
##操作单列#操作A到C列#操作1到3行#指定一个范围遍历所有行和列#获取所有行#获取所有列 #coding=utf-8 from openpyxl import Workbook wb=Workbo ...
- Python Excel操作库
xlrd:支持.xls..xlsx读 xlwt:只支持.xls写 xlutils:只支持.xls读写 依赖于xlrd和xlwt xlwings:支持.xls读,.xlsx读写 可以实现Excel和Py ...
- Python Excel 操作
1.Excel Code import os import time import re import win32com.client def dealpath(pathname='') -> ...
- python excel操作 练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称。每个sheet有个底色
练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称.每个sheet有个底色 #coding=utf-8 from openpyxl import Workb ...
- Python Excel操作——xlrd、xlwd
读取 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workbook('excel.xls') 3.获取一个工作表 1 table = dat ...
- 【Python】 更棒的Excel操作模块xlwings
[xlwings] 说到Python操作Excel,有好多模块都可以支持这个工作.比如最底层的win32模块不仅可以操作Excel,还可以操作其他一众windows的软件. 其他的比较熟悉的有xlrd ...
- python 对excel操作用法详解
在python中,对excel表格读,写,追加数据,用以下三个模块: 1.wlrd 读取excel表中的数据 2.xlwt 创建一个全新的excel文件,然后对这个文件进行写入内容以及保存. 3.xl ...
随机推荐
- EasyUI datagrid 删除的时候无法正确找到重复记录row index的问题
EasyUI datagrid 删除的时候无法正确找到重复记录row index的问题: 如果无法正确找到重复记录的row index,就需要进行注意添加的时候所进行的 操作:如果添加的时候就是添加的 ...
- Windows上的音频采集技术
在制作发布端的时候,需要采集到声卡的输出信号,以便与麦克风的输入信号进行混音,对于音频处理的技术,主要有如下几种: 采集麦克风输入 采集声卡输出 将音频数据送入声卡进行播放 对多路音频输入进行混音处理 ...
- Docker,容器,虚拟机和红烧肉
Docker火了,有多火你自己看看下面的统计数据就知道了 在发布4个月的时间里,下载量就超过50000次,github上收到超过4000个star,涌现了超过100个贡献者,并且有超过150个项目和超 ...
- Bootstrap入门(二十六)JS插件3:滚动监听
很多时候我们在浏览一些网页的时候,导航条会根据我们浏览网页的进度而发生不同的变化,这种就是滚动监听. 你的顶栏导航,添加data-spy="scroll"到您想要刺探(最典型的是这 ...
- DotNet加密方式解析--数字签名
马上就要过年回村里了,村里没有wifi,没有4G,没有流量,更加重要的是过几天电脑就得卖掉换车票了,得赶紧写几篇博客. 数据安全的相关技术在现在愈来愈变得重要,因为人们对于自身的信息都有一种保护的欲望 ...
- SQL Server事务、隔离级别详解(二十九)
前言 事务一直以来是我最薄弱的环节,也是我打算重新学习SQL Server的出发点,关于SQL Server中事务将分为几节来进行阐述,Always to review the basics. 事务简 ...
- 字符集编码与Python(一)编码历史
编码历史 ASCII ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于 ...
- codeforces div2.C
C. New Year and Rating time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- 【iOS 录音转码MP3及转码BASE64上传】
iOS 录音转码MP3及转码BASE64上传 一,开始录音 NSLog(@"开始录音"); [self startRecord]; - (void)startRecord { // ...
- (@WhiteTaken)设计模式学习——抽象工厂模式
抽象工厂模式,可以向客户端提供一个接口,而客户端不用指定具体的类型创建对象,却能够创建多个产品族(一类具有共性产品,如地域等)的对象. 下面直接上代码. 1.苹果需要实现水果的接口,而苹果可以有北方的 ...