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的更多相关文章

  1. Python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却 ...

  2. 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

    Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...

  3. Selenium2+python自动化59-数据驱动(ddt)

    前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...

  4. Selenium2+python自动化59-数据驱动(ddt)【转载】

    前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...

  5. Selenium2+python自动化20-Excel数据参数化【转载】

    前言 问: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化? 答:可以使用xlrd读取Excel的内容进行参数化.当然为了便于各位小 ...

  6. python与excel的关系;铁打的python流水的excel

    现在很多行业,都离不开用Excel: 做财务的,要用Excel做报表:做物流的,会用Excel来跟踪订单情况:做HR的,会用Excel算工资:做分析的,会用Excel计算数据做报表.不知道你有没有这样 ...

  7. Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|

    内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...

  8. 最全总结 | 聊聊 Python 办公自动化之 Excel(中)

    1. 前言 上一篇文章中,我们聊到使用 xlrd.xlwt.xlutils 这一组合操作 Excel 的方法 最全总结 | 聊聊 Python 办公自动化之 Excel(上) ​本篇文章将继续聊另外一 ...

  9. 探索微软开源Python自动化神器Playwright

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

随机推荐

  1. zabbix(2-server-agent)

    注意:以下步骤都是在LAMP配置之后进行的. 关于LAMP环境的简单快速搭建,见博客:http://afterdawn.blog.51cto.com/7503144/1923139 下面开始介绍在Ce ...

  2. Linux系统扫描技术及安全防范

    1.概述 一.主机扫描 二.路由扫描 三.批量服务扫描 四.linux防范恶意扫描安全策略 一个典型的网络安全事件 ·案例:通过网络扫描方式获取某运营商核心设备管理权限 step01:通过tracer ...

  3. 【LeetCode92】Reverse Linked List II★★

    题目描述: 解题思路: 题目大意:给定一个链表,反转第m到第n个结点部分,m.n满足1 ≤ m ≤ n ≤ length of list. 解题思路参照LeetCode206题,用迭代法,不过要注意以 ...

  4. 20155304《网络对抗》MSF基础应用

    20155304<网络对抗>MSF基础应用 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如ms08_ ...

  5. SpingMVC的<context:component-scan>包扫描踩坑记录

        公司项目配置的Spring项目的包扫描有点问题,出现了一个被Spring容器管理的Bean被创建了2次的现象.在此记录下解决的过程,方便后续查阅. 改动前: 容器启动监听器中会扫描全部包,创建 ...

  6. Aspose.Cells.dll的用法

    public void OutExcel() { #region WorkbookDesigner designer = new WorkbookDesigner(); Worksheet sheet ...

  7. [Oracle]System 表空间的文件丢失

    如果system 表空间的文件丢失,假设有备份的情况,可以恢复.数据库需要设置为mount 状态,然后restore/recover datafile 模拟实验: SQL> select nam ...

  8. C++ STL 学习笔记__(8)map和multimap容器

    10.2.9 Map和multimap容器 map/multimap的简介 ²  map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. ² ...

  9. [CF1062F]Upgrading Cities[拓扑排序]

    题意 一张 \(n\) 点 \(m\) 边的 \(DAG\) ,问有多少个点满足最多存在一个点不能够到它或者它不能到. \(n,m\leq 3\times 10^5\) 分析 考虑拓扑排序,如果 \( ...

  10. 设计模式 笔记 适配器模式 Adapter

    //---------------------------15/04/13---------------------------- //Adapter 适配器模式 ----类对象结构型模式 /* 1: ...