python自动化之excel
import openpyxl
wb=openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\sl.xlsx')
type(wb)
wb.get_sheet_names()
sheet=wb.get_sheet_by_name('o')
type(sheet)
sheet.title
anotherSheet=wb.get_active_sheet() #######得到活动页sheet
anotherShee
##################################################################################
>>> import openpyxl
>>> wb=openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\example.xlsx')
>>> sheet=wb.get_sheet_by_name('Sheet1')
>>> sheet['A1']
<Cell u'Sheet1'.A1>
>>> sheet['A1'].value
u'4/5/2015 1:34:02 PM'
>>> c=sheet['B1']
>>> c.value
u'Apples'
>>> 'Row '+str(c.row)+',Column'+c.column+' is '+c.value
u'Row 1,ColumnB is Apples'
>>> 'Cell '+c.coordinate+' is '+c.value
u'Cell B1 is Apples'
>>> sheet['C1'].value
73L
>>> sheet.cell(row=1,column=2)
<Cell u'Sheet1'.B1>
>>> sheet.cell(row=1,column=2).value
u'Apples'
>>> for i in range(1,8,2):
... print(i,sheet.cell(row=i,column=2).value)
...
(1, u'Apples')
(3, u'Pears')
(5, u'Apples')
(7, u'Strawberries')
>>> sheet.max_column
3
>>> sheet.max_row
7
#############################列字母与数字之间的转换##############################################
>>> import openpyxl
>>> from openpyxl.utils import get_column_letter,column_index_from_string
>>> get_column_letter(1)
'A'
>>> get_column_letter(2)
'B'
>>> get_column_letter(27)
'AA'
>>> get_column_letter(900)
'AHP'
>>> wb=openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\example.xlsx')
>>> sheet=wb.get_sheet_by_name('Sheet1')
>>> get_column_letter(sheet.max_column)
'C'
>>> column_index_from_string('A')
1
>>> column_index_from_string('AA')
27
#####################################从表中取得行和列###########################################
>>> import openpyxl
>>> wb=openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\example.xlsx')
>>> sheet=wb.get_sheet_by_name('Sheet1')
>>> tuple(sheet['A1':'C3'])
((<Cell u'Sheet1'.A1>, <Cell u'Sheet1'.B1>, <Cell u'Sheet1'.C1>), (<Cell u'Sheet1'.A2>, <Cell u'Sheet1'.B2>, <Cell u'Sheet1'.C2>), (<Cell u'Sheet1'.A3>, <Cell u'Sheet1'.B3>, <Cell u'Sheet1'.C3>))
>>> for rowOfCellObjects in sheet['A1':'C3']:
... for cellObj in rowOfCellObjects:
... print(cellObj.coordinate,cellObj.value)
... print('---END OF ROW---')
...
('A1', u'4/5/2015 1:34:02 PM')
('B1', u'Apples')
('C1', 73L)
---END OF ROW---
('A2', u'4/5/2015 3:41:23 AM')
('B2', u'Cherries')
('C2', 85L)
---END OF ROW---
('A3', u'4/6/2015 12:46:51 PM')
('B3', u'Pears')
('C3', 14L)
---END OF ROW---
###########################################################################################
>>> import openpyxl
>>> wb=openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\example.xlsx')
>>> sheet=wb.get_sheet_by_name('Sheet1')
>>> for cellObj in sheet.columns:
... for rowObj in cellObj:
... print(rowObj.value)
...
4/5/2015 1:34:02 PM
4/5/2015 3:41:23 AM
4/6/2015 12:46:51 PM
4/8/2015 8:59:43 AM
4/10/2015 2:07:00 AM
4/10/2015 6:10:37 PM
4/10/2015 2:40:46 AM
Apples
Cherries
Pears
Oranges
Apples
Bananas
Strawberries
73
85
14
52
152
23
98
#############################################################################
'''
1、导入openpyxl模块
2、调用openpyxl.load_workbook()函数
3、取得Workbook对象
4、调用get_sheet_by_name()或get_active_sheet()工作薄方法
5、取得Worksheet对象
6、使用索引或工作表的cell()方法,带上row和column关键字参数
7、取得cell对象
8、读取cell对象的value属性
'''
#############################################################################
'''
openpyxl默认大小为11,字体为Calibri
'''
import openpyxl
from openpyxl.styles import Font,NamedStyle
wb=openpyxl.Workbook()
sheet=wb.get_sheet_by_name('Sheet')
italic24Font=Font(size=24,italic=True)
styleObj=NamedStyle(font=italic24Font)
sheet.cell(row=1,column=1).font=italic24Font
sheet['A1']='Hello World'
fontObj2=Font(name='Times New Roman',bold=True)
sheet.cell(row=1,column=2).font=fontObj2
sheet['B1']='Bold Times New Roman'
wb.save('styled.xlsx')
##############################################################################
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.get_active_sheet()
sheet['A1']=200
sheet['A2']=300
sheet['A3']='=SUM(A1:A2)'
wb.save('writeFormula.xlsx')
#############################################################################
import openpyxl
wbFormulas=openpyxl.load_workbook('writeFormula.xlsx')
sheet=wbFormulas.get_active_sheet()
sheet['A3'].value
import openpyxl
wb=openpyxl.load_workbook('writeFormula.xlsx',data_only=True)#######没效果
sheet=wb.get_active_sheet()
sheet['A3'].value
#############################################################################
##########################设置行高和列宽#####################################
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.get_active_sheet()
sheet['A1']='Tall row'
sheet['B2']='Wide column'
sheet.row_dimensions[1].height=70 ###########默认行高是12.75
sheet.column_dimensions['B'].width=20 ###########默认行高是8.43
wb.save('dimensions.xlsx')
#############################################################################
##########################合并与拆分单元格###################################
'''
设置这些合并后单元格的值,只要设置这一组合并单元格左上角的值
'''
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.get_active_sheet()
sheet.merge_cells('A1:D3')
sheet['A1']='Twelve cells merged together.'
sheet.merge_cells('C5:D5')
sheet['C5']='Two merged cells'
wb.save('merged.xlsx')
import openpyxl
wb=openpyxl.load_workbook('merged.xlsx')
sheet=wb.get_active_sheet()
sheet.unmerge_cells('A1:D3')
sheet.unmerge_cells('C5:D5')
wb.save('merged.xlsx')
#############################################################################
#############################冻结窗口########################################
'''
freeze_panes的设置 冻结的行和列
sheet.freeze_panes='A2' 行1
sheet.freeze_panes='B1' 列A
sheet.freeze_panes='C1' 列A和列B
sheet.freeze_panes='C2' 行1和列A和列B
sheet.freeze_panes='A1'或 没有冻结窗口
sheet.freeze_panes=None
'''
import openpyxl
wb=openpyxl.load_workbook('freezeExample.xlsx')
sheet=wb.get_active_sheet()
sheet.freeze_panes='A1'
wb.save('freezeExample.xlsx')
############################################################################
'''
1、从一个矩形区域选择的单元格,创建一个Reference对象.
2、通过传入Reference对象,创建一个Series对象.
3、创建一个Chart对象
4、将Series对象添加到Chart对象
5、可选地设置Chart对象的drawing.top、drawing.left、drawing.width和drawing.height变量
6、将Chart对象添加到Worksheet对象
openpyxl.charts.Reference()函数传入3个参数:
1、包含图表数据的Worksheet对象
2、左上角单元格
3、右下角单元格
条形图:openpyxl.charts.BarChart()
折线图:openpyxl.charts.LineChart()
散点图:openpyxl.charts.ScatterChart()
饼图:openpyxl.charts.PieChart()
'''
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.get_active_sheet() ####create some data in column A
for i in range(1,11):
sheet['A'+str(i)]=i
refObj=openpyxl.chart.Reference(sheet,min_col=1, min_row=1, max_col=10, max_row=1)
seriesObj=openpyxl.chart.Series(refObj,title='First series')
chartObj=openpyxl.chart.BarChart()
chartObj.append(seriesObj)
chartObj.top=50 ###set the position
chartObj.left=100
chartObj.width=300
chartObj.height=200
sheet.add_chart(chartObj)
wb.save('sampleChart.xlsx')
###########################测试###################################
import openpyxl
wb=openpyxl.Workbook()
wb.get_sheet_names()
sheet=wb.get_active_sheet()
sheet.title
sheet.title='Spam Bacon Eggs Sheet'
wb.get_sheet_names()
###########################修改名称################################
import openpyxl
wb=openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\example.xlsx')
sheet=wb.get_active_sheet()
sheet.title='Spam Spam Spam'
wb.save('C:\Users\Administrator\Desktop\example.xlsx')
###########################创建和删除工作表########################
import openpyxl
wb=openpyxl.Workbook()
wb.get_sheet_names()
wb.create_sheet()
wb.get_sheet_names()
wb.create_sheet(index=0,title=u'第1')
wb.get_sheet_names()
wb.create_sheet(index=2,title=u'第2')
wb.get_sheet_names()
wb.remove_sheet(wb.get_sheet_by_name('Middle Sheet'))
wb.remove_sheet(wb.get_sheet_by_name('Sheet1'))
wb.get_sheet_names()
###################################################################
import openpyxl
wb=openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\example.xlsx')
wb.create_sheet(index=0,title=u'第1')
wb.get_sheet_names()
wb.create_sheet(index=2,title=u'第2')
wb.get_sheet_names()
wb.save('C:\Users\Administrator\Desktop\example.xlsx')
#########################将值写入单元格############################
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.get_sheet_by_name('Sheet')
sheet['A1']='Hello world'
sheet['A1'].value
###########################更新一个电子表格#########################
'''
1、循环遍历所有行
2、如果该行是Garlic、Celey或Lemons,更新价格
'''
import openpyxl
wb=openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\Price.xlsx')
sheet=wb.get_sheet_by_name('Sheet1')
PRICE_UPDATES={'Garlic':3.07,'Celery':1.19,'Lemon':1.27}
for rowNum in range(2,sheet.get_highest_row()):
produceName=sheet.cell(row=rowNum,column=1).value
if produceName in PRICE_UPDATES:
sheet.cell(row=rowNum,column=2).value=PRICE_UPDATES[produceName]
wb.save('C:\Users\Administrator\Desktop\Price.xlsx')
###########################从电子表格中读取表格#########################
python自动化之excel的更多相关文章
- Python自动化办公知识点整理汇总
知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却 ...
- 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...
- Selenium2+python自动化59-数据驱动(ddt)
前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...
- Selenium2+python自动化59-数据驱动(ddt)【转载】
前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...
- Selenium2+python自动化20-Excel数据参数化【转载】
前言 问: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化? 答:可以使用xlrd读取Excel的内容进行参数化.当然为了便于各位小 ...
- python与excel的关系;铁打的python流水的excel
现在很多行业,都离不开用Excel: 做财务的,要用Excel做报表:做物流的,会用Excel来跟踪订单情况:做HR的,会用Excel算工资:做分析的,会用Excel计算数据做报表.不知道你有没有这样 ...
- Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|
内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...
- 最全总结 | 聊聊 Python 办公自动化之 Excel(中)
1. 前言 上一篇文章中,我们聊到使用 xlrd.xlwt.xlutils 这一组合操作 Excel 的方法 最全总结 | 聊聊 Python 办公自动化之 Excel(上) 本篇文章将继续聊另外一 ...
- 探索微软开源Python自动化神器Playwright
相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...
随机推荐
- Java中splite的用法与小技巧
在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧.如执行:"2|33|4".split(&quo ...
- lwip lwiperf 方法进行性能测试 4.5MB/S
硬件配置: STM32F407 + DP83848 + FreeRTOS V10.1.1 + LWIP 2.1.2 2018年12月5日14:31:24 1.先读取 PHY 寄存器 , 查看 自 ...
- Python开发简单爬虫
简单爬虫框架: 爬虫调度器 -> URL管理器 -> 网页下载器(urllib2) -> 网页解析器(BeautifulSoup) -> 价值数据 Demo1: # codin ...
- lucas定理的证明
http://baike.baidu.com/link?url=jJgkOWPSRMobN7Zk4kIrQAri8m0APxcxP9d-C6qSkIuembQekeRwUoEoBd6bwdidmoCR ...
- 极客互联网电视不是噱头,用户体验成创维G7200核心竞争力
IT产业的迅猛发展带动了智能设备的崛起与繁荣,除已经高度普及的智能手机之外.智能电视.智能可穿戴设备等一大批新兴产品更是让消费者充分感受到了智能科技为生活所带来的变化.以智能电视为例,除了乐视 ...
- 大数据入门第二十二天——spark(二)RDD算子(1)
一.RDD概述 1.什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的 ...
- [Deep-Learning-with-Python]计算机视觉中的深度学习
包括: 理解卷积神经网络 使用数据增强缓解过拟合 使用预训练卷积网络做特征提取 微调预训练网络模型 可视化卷积网络学习结果以及分类决策过程 介绍卷积神经网络,convnets,深度学习在计算机视觉方面 ...
- win7笔记本VirtualBox安装黑苹果MacOS 10.13
环境 时间:2018.04.09,没有指明时间的教程都是耍流氓 笔记本:某州优雅A460P-i7G D2,4G内存,Intel Core i7-2670QM四核八线程(老笔记本勉强能用),ssd硬盘, ...
- 177. Convert Sorted Array to Binary Search Tree With Minimal Height【LintCode by java】
Description Given a sorted (increasing order) array, Convert it to create a binary tree with minimal ...
- oracle创建用户和角色、管理授权以及表空间操作
show user 显示当前用户connect username/password@datebasename as sysdba 切换用户和数据库 和用户身份 Oracle登录身份有三种: norma ...