关键词:
相关文章:
python处理Excel实现自动化办公教学(含实战)【一】
python处理Excel实现自动化办公教学(含实战)【二】
python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
1.数据筛选
样例:
from openpyx1. styles import Alignment
import openpyx1
wb =openpyxl.load workbook( './data/ cellBorder .xlsx')
sheet =wb[ '数据筛选']
#创建筛选器对象: auto_ filter
#ref:使得筛选器对象引用指定的区域
sheet.auto_filter.ref = 'B1:D7'
wb.save( './data/ cellBorder.xlsx' )
#设置筛选条件
from openpyx1. styles import Alignment
import openpyxl
wb = openpyxl.load workbook( ' . /data/ cellBorder .xlsx')
sheet=wb['数据筛选']
#创建筛选器对象: auto_ filter
#ref:使得筛选器对象引用指定的区域
sheet.auto_filter.ref ='B1:D7 '
#add_filter_column参数:参数1表示对指定区域那一列进行设置筛选条件,参数2: 筛选条件内容
sheet.auto_filter.add_filter_column(0,['北京','深圳'])
wb.save('./data/ cellBorder.xlsx')
#样式需要去excel里点击保存即可
#排序
from openpyxl. styles import Alignment
import openpyx1
wb = openpyxl.load workbook('. /data/ cellBorder .xlsx')
sheet = wb['数据筛选']
sheet.auto_filter.ref = 'B1:D7'
#参数1:排序列.参数2:升降序
sheet.auto_filter.add_sort_condition(ref= 'D2 :D9 ',descending=True)
wb.save('./data/ cellBorder . xlsx')
2.公式
- 利用 openpyxl 模块,用编程的方式在单元格中添加公式,就像 添加普通的值一样。例如:
- sheet['B9'] = '=SUM(B1:B8)'
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 200
sheet['A2'] = 300
sheet['A3'] = '=SUM(A1:A2)'
wb.save('./data/sum.xlsx')
读取公式:
import openpyxl
wb = openpyxl.load_workbook( '.[data/sum.xlsx',read only=True)
sheet = wb.active
#注意:如果返回的是None,则打开exce1.工作簿,将内容手动保存下即可,不方便,但是没有办法
print(sheet[ 'A3' ] .value )
3.调整行列
- 在 Excel 中,调整行和列的大小非常容易,只要点击并拖动行的边缘,或列的 头部。但如果你需要根据单元格的内容来设置行或列的大小,或者希望设置大量电子表格文件中的行列大小,编写 Python 程序来做就要快得多。
- 设置行高和列宽
- Worksheet 对象有 row_dimensions 和 column_dimensions 属性,控制行高和列宽。
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.get_active_sheet()
sheet['A1'] = 'Tall row'
sheet['B2'] = 'Wide column'
wb.save('./data/dimensions.xlsx')
sheet.row_dimensions
#因为表里只有两行数据所以显示两行
1: <openpyxl.worksheet.dimensions.RowDimension at 0x108af1f98>,
2: <openpyxl.worksheet.dimensions.RowDimension at 0x108af1dd8>
sheet.column_dimensions
DimensionHolder([('A',
<openpyxl.worksheet.dimensions.ColumnDimension at 0x108af1c88>),
('B',
<openpyxl.worksheet.dimensions.ColumnDimension at 0x108af1978>)])
#设置行高
sheet.row_dimensions[2].height = 50
#设置列宽
sheet.column_dimensions['A'].width = 80
wb.save('./data/dimensions.xlsx')
注意:
- 行的高度可以设置为 0 到 409 之间的整数或浮点值。这个值表示高度的点数。
- 一点等于 1/72 英寸。默认的行高是 12.75。
- 列宽可以设置为 0 到 255 之间的整数或浮点数。
- 默认的列宽是 8.43 个字符。列宽为零或行高为零,将使单元格隐藏。
4. 合并和拆分单元格
- 利用 merge_cells()工作表方法,可以将一个矩形区域中的单元格合并为一个单元格。
- 要拆分单元格,就调用 unmerge_cells()工作表方法。
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.get_active_sheet()
sheet.merge_cells('A1:D7') #合并
sheet['A1'] = 'hello bobo'
wb.save('./data/merged.xlsx')
sheet.unmerge_cells('A1:D7')
sheet['A2'].value
5.冻结窗格
- 对于太大而不能一屏显示的电子表格,“冻结”顶部的几行或最左边的几列,是很有帮助的。在 OpenPyXL 中,每个 Worksheet 对象都有一个 freeze_panes 属性,可以设置为一个 Cell 对象或一个单元格坐标的字符串。
- 请注意,单元格上边的所有行和左边的所有列都会冻结,但单元格所在的行和列不会冻结。
- 要解冻所有的单元格,就将 freeze_panes 设置为 None 或'A1'
#冻结
import openpyxl
wb = openpyxl.load_workbook('./data/produceSales.xlsx')
sheet = wb.get_active_sheet()
sheet.freeze_panes = 'A2'
wb.save('./data/produceSales.xlsx')
#解冻结
sheet.freeze_panes = None
wb.save('./data/produceSales.xlsx')
6.绘制图表
- openpyxl 支持利用工作表中单元格的数据,创建条形图、折线图、散点图和饼图。要创建图表,需要做下列事情:
- 1.从一个矩形区域选择的单元格,创建一个 Reference 对象。
- 2.通过传入 Reference 对象,创建一个 Series 对象。
- 3.创建一个 Chart 对象。
- 4.将 Series 对象添加到 Chart 对象。
- 5.可选地设置Chart 对象的drawing.top、drawing.left、drawing.width 和drawing.height变量用来设置图表的位置和大小。
- 6.将 Chart 对象添加到 Worksheet 对象。
- Reference 对象需要一些解释。Reference 对象表示图表要引用的数据区域。是通过调用 openpyxl.charts.Reference()函数并传入 3 个参数创建的:
- 1.包含图表数据的 Worksheet 对象。
- 2.两个整数的元组,代表矩形选择区域的左上角单元格,该区域包含图表数据:元组中第一个整数是行,第二个整数是列。请注意第一行是 1,不是 0。
- 3.两个整数的元组,代表矩形选择区域的右下角单元格,该区域包含图表数据:元组中第一个整数是行,第二个整数是列。
import openpyxl
wb = openpyxl.load_workbook(filename='./data/sampleChart.xlsx')
sheet = wb.get_active_sheet()
refObj = openpyxl.charts.Reference(sheet, (1, 2),(10,2))
seriesObj = openpyxl.charts.Series(refObj, title='First series')
chartObj = openpyxl.charts.BarChart()
sheet.add_data(refObj ) #图标中添加数据
chartObj.append(seriesObj) #图标中添加数据两种方式
chartObj.drawing.top = 200 # set the position
chartObj.drawing.left = 200
chartObj.drawing.width = 300 # set the size
chartObj.drawing.height = 200
chartObj.title = sheet_name
chartObj.x_axis.title = '日期'
chartObj.y_axis.title = '营收额'
sheet.add_chart(chartObj,"G1") #添加到制定sheet中
wb.save('./data/sampleChart.xlsx')
- 我们可以调用 openpyxl.charts.BarChart(),创建一个条形图。也可以调用openpyxl.charts.LineChart()、openpyxl.charts.ScatterChart()和 openpyxl.charts.PieChart(),创建折线图、散点图和饼图。
效果:图的绘制
import openpyxl
from openpyxl.charts import Reference,BarChart,Series
import os
for file_name in os.listdir('./data/Bobo公司2020-2030年营收报表'):
if file_name != '.DS_Store': #苹果电脑会有一个隐藏文件,去掉不处理
file_name = os.path.join('./data/Bobo公司2020-2030年营收报表',file_name)
ex_file = openpyxl.load_workbook(file_name)
sheet_names = ex_file.get_sheet_names() #获取所有表
for sheet_name in sheet_names:
sheet_file = ex_file.get_sheet_by_name(sheet_name)
data=Reference(sheet_file, min_col=2,min_row =1,max_row=32,max_col=4 ) #推荐这种写法方便
"""
data1 = Reference(sheet_file, (2, 2),(32,2))
data2 = Reference(sheet_file, (2, 3),(32,3))
data3 = Reference(sheet_file, (2, 4),(32,4))
seriesObj1 = Series(data1,title='手机')
seriesObj2 = Series(data2,title='彩妆')
seriesObj3 = Series(data3,title='电脑')
"""
bc = BarChart()
bc.title = sheet_name
bc.x_axis.title = '日期'
bc.y_axis.title = '营收额'
#bc.append(seriesObj1)
#bc.append(seriesObj2)
#bc.append(seriesObj3)
bc.add_data(data, titles_from_data=True )
bc.drawing.top = 200 # set the position
bc.drawing.left = 400
bc.drawing.width = 600 # set the size
bc.drawing.height = 400
#使用日期这一列作为x轴
x_label=Reference(sheet_file, min_col=1,min_row= =2,max_row=32 )
bc.set_categories(x_label )
sheet_file.add_chart(bc,'E5' )
#sheet_file.add_chart(bc)
ex_file.save(file_name)
7. 练习题【知识点回顾】
1.openpyxl.load_workbook()函数返回什么?
2.get_sheet_names()工作簿方法返回什么?
3.如何取得名为'Sheet1'的工作表的 Worksheet 对象?
4.如何取得工作簿的活动工作表的 Worksheet 对象?
5.如何取得单元格 C5 中的值?
6.如何将单元格 C5 中的值设置为"Hello"?
7.工作表方法 get_highest_column()和 get_highest_row()返回什么?
8.如何取得从 A1 到 F1 的所有 Cell 对象的元组?
9.如何将工作簿保存到文件名 example.xlsx?
10.如何在一个单元格中设置公式?
11.如果需要取得单元格中公式的结果,而不是公式本身,必须先做什么?
12.如何将第 5 行的高度设置为 100?
13.如何设置列 C 的宽度?
14.什么是冻结窗格?
7.1 实践项目
- 创建一个9*9乘法表
- 编写一个程序,翻转电子表格中行和列的单元格。例如,第 5 行第 3 列的值将 出现在第 3 行第 5 列(反之亦然)。这应该针对电子表格中所有单元格进行
python处理excel实现自动化办公教学(数据筛选公式操作单元格拆分合并冻结窗口图表绘制等)(代码片段)
相关文章:python处理Excel实现自动化办公教学(含实战)【一】python处理Excel实现自动化办公教学(含实战)【二】python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、... 查看详情
python自动化高效办公第二期,带你项目实战{excel数据处理批量化生成word模板pdf和ppt等自动化操作}(代码片段)
相关文章和数据源:Python自动化办公--Pandas玩转Excel【一】Python自动化办公--Pandas玩转Excel数据分析【二】Python自动化办公--Pandas玩转Excel数据分析【三】python处理Excel实现自动化办公教学(含实战)【一】python处理Excel... 查看详情
python控制excel实现自动化办公!
1.安装2.操作一个简单的Excel文档操作注释及代码:操作完成后,数据存储结果如下:3.操作简单Excel文档并添加数据格式操作代码如下:附带数据格式的定义操作效果如图所示:4.Excel中添加不同类型的数据操作... 查看详情
python自动化办公-处理excel文档
✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。 查看详情
python办公自动化之操作excel(一)
参考技术A处理Excel的库主要有xlrd、xlwt、xlwings和openpyxl。xlrd、xlwt、xlwings可以用于处理Excel2010文档之前的文档,而openpyxl是用于处理Excel2010文档的Python库。Workbook-工作簿、Worksheet-工作表、Cell-单元格是openpyxl库中的三大要素。单元... 查看详情
学好excel有啥用啊
...A 总体来说提高办公效率、提升个人实力、实现办公自动化。首先,Excel强大的数据处理能力,基础操作、函数、图表、数据透视表和VBA学习好能大大提高办公效率。其次,Excel已经成为办公一组必备的技能,学习好Excel能大... 查看详情
python自动化高效办公第二期,带你项目实战{数据可视化发送邮件(定时任务监控)python聊天机器人(基于微信钉钉)}(代码片段)
相关文章和数据源:python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}Python自动化办公--Pandas玩转Excel【一】Python自动化办公--Pandas玩转Excel数据分析【... 查看详情
python自动化高效办公第二期,带你项目实战{数据可视化发送邮件(定时任务监控)python聊天机器人(基于微信钉钉)}(代码片段)
相关文章和数据源:python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}Python自动化办公--Pandas玩转Excel【一】Python自动化办公--Pandas玩转Excel数据分析【... 查看详情
如何在excel中调用python脚本,实现数据自动化处理(代码片段)
这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作。说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网... 查看详情
如何在excel中调用python脚本,实现数据自动化处理(代码片段)
这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作。说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网... 查看详情
python实现办公自动化读书笔记——自动化处理word文档(代码片段)
自动化处理Word文档使用Python实现Word文档的自动化处理,包括批量生成Word文档、在Word文档中批量进行查找和替换、将Word文档批量转换成PDF等。1.批量生成Word文档安装openpyxl模块pipinstallopenpyxl安装python-docx模块pipinstallpython-docxo... 查看详情
在excel中调用python脚本,实现数据自动化处理(代码片段)
说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的Python,也仅仅只有700万的开发人员。Excel是全世界最流行的编程语言。对,你没... 查看详情
在excel中调用python脚本,实现数据自动化处理(代码片段)
说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的Python,也仅仅只有700万的开发人员。Excel是全世界最流行的编程语言。对,你没... 查看详情
处理excel,选择vba还是python?
...很多人都只敢说会使用,不敢说精通。虽然VBA作为程序的自动化脚本而存在,是为了提高程序的自动化程度。可是,操作起来,那就事与愿违了。比如,自定义类必须写在类模块,不能写到模块或者Excel对象中;在类模块中自定... 查看详情
在excel中调用python脚本,实现数据自动化处理(代码片段)
说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的Python,也仅仅只有700万的开发人员。Excel是全世界最流行的编程语言。对,你没... 查看详情
不要逼自己学习excel了,用python实现excel的14个常用操作!(代码片段)
...作都可以用Python实现。利用Python,它不仅可以让办公自动化,而且可以大大增强了数据处理能力。今天我将给大家分享如何用Python实现excel的14个常用操作。废话不说了,直接进入正题。本文所 查看详情
收藏了30+实用的python办公自动化库!
...方“Python猫”关注,回复“1”领取电子书来源丨Python自动化办公社区作者丨牛稳稳大家好,我是猫哥~今天给大家分享一下,花费2周时间整理的Python自动化办公库。本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件... 查看详情
超实用!整理了34个python自动化办公库!
来源丨Python自动化办公社区 作者丨牛稳稳今天给大家分享一下Python自动化办公库。本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库,希望能够对大家有所帮助。PythonExcel... 查看详情