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‘)

###########################从电子表格中读取表格#########################

时间: 2024-10-11 18:42:17

python自动化之excel的相关文章

Python自动化整理Excel 表格

相信有不少朋友日常工作会用到 Excel 处理各式表格文件,更有甚者可能要花大把时间来做繁琐耗时的表格整理工作.最近有朋友问可否编程来减轻表格整理工作量,今儿我们就通过实例来实现 Python 对表格的自动化整理. 首先我们有这么一份数据表 source.csv: 我们要做的是从上表中提取数据,来生成一份符合以下要求的表格: 按照以下分组名单 group.xls 来整理数据表中的数据: 最终要展现的数据项: 其中"K数据/60"为数据表中的"数据K"/60后保留的2

python自动化办公?学这些就够用了

知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手? python在自动化办公领域越来越受欢迎,批量处理简直是加班族的福音. 自动化办公无非是excel.ppt.word.邮件.文件处理.数据分析处理.爬虫这些,这次我就来理一理python自动化办公的那些知识点. python基础 excel自动化 ppt自动化 word自动化 邮件处理 文件批量处理 数据处理与分析 自动化爬虫 下面一一详解. p

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

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

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

前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成. 一.环境准备 1.安装ddt模块,打开cmd输入pip install ddt在线安装 >>pip install ddt 二.数据驱动原理 1.测试数据为多个字典的list类型 2.测试类前加修饰@ddt.ddt 3.case前加修饰@ddt.data() 4.运

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

前言 问: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化? 答:可以使用xlrd读取Excel的内容进行参数化.当然为了便于各位小伙伴们详细的了解,小编一一介绍具体的方法. 一.编写登录用例: Step1:访问http://www.effevo.com (打个广告effevo是搜狗自研发的项目管理系统,完全免费,非常好用)Step2:点击页面右上角的登录Step3:输入用户名和密码后登录Step4:检查右上角的头像是否存在实现

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

本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成. 一.环境准备 1.安装ddt模块,打开cmd输入pip install ddt在线安装 >>pip install ddt 二.数据驱

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

python全栈和python自动化课程的区别在哪?

老男孩算是国内组早的做python培训的机构了,下面小编对于python自动化课程及全栈课程做了一个总结,希望能帮到你们: python全栈开发: 适合人群:应届本科生,专科,及零基础学员学习基础:0基础上课形式:脱产5个月,周一至周五上课课程内容:linux基础知识,python基础知识,网络编程,数据库应用,web开发,算法设计模式项目实战:博客系统开发,CRM系统开发,CMDB开发,主机开发管理,爬虫开发,金融量化交易项目开发未来发展方向:python全栈开发工程师就业方向:python爬

Python自动化运维课程学习--Day2

本文为参加老男孩Python自动化运维课程第二天学习内容的总结. 大致内容如下: 1.python模块初识 2.python程序运行流程 3.python数据类型(只讲了numbers, bool, strings, bytes, list, tuple, dict, set) 4.python数据运算 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 --Python IDE: PyCharm