10分钟学会用Python轻松玩转Excel

当你需要每天对 Excel 做大量重复的操作,如果只靠人工来做既浪费时间,又十分枯燥,好在 Python 为我们提供了许多操作 Excel 的模块,能够让我们从繁琐的工作中腾出双手 。
今天就和大家分享一个快速处理 Excel 的模块 openpyxl,它的功能相对与其他模块更为齐全,足够应对日常出现的问题 。
如果仅用Python来处理数据、爬虫、数据分析或者自动化脚本、机器学习等,我建议使用Python基础环境+jupyter即可,安装使用参考windows/mac 安装、使用Python环境+jupyter notebook
如果想利用Python进行web项目开发等,建议使用Python基础环境+Pycharm,安装使用参考:Windows下安装、使用Pycharm教程,这下全了 和 Mac下玩转Python-安装&使用Python/PyCharm。openpyxl 安装
直接在命令提示符中输入 。
pip install openpyxl或使用豆瓣镜像安装 。
pip install -i https://pypi.douban.com/simple openpyxl安装成功后,下面就看看如何使用
打开/创建工作簿「示例工作簿」

10分钟学会用Python轻松玩转Excel

文章插图
 
工作表【一等奖】
10分钟学会用Python轻松玩转Excel

文章插图
 
工作表【二等奖】
10分钟学会用Python轻松玩转Excel

文章插图
 
(1)打开本地工作簿
>>> from openpyxl import load_workbook>>> wb = load_workbook('获奖名单.xlsx')(2)创建空的工作薄
>>> from openpyxl import Workbook>>> wb1 = Workbook()访问工作表创建新工作表,可指定插入的位置(0:首位,-1:末尾) 。
>>> wb.create_sheet('new_sheet', 0)<Worksheet "new_sheet">获取工作簿中所有工作表 。
>>> wb.sheetnames['new_sheet', '一等奖', '二等奖']使用列表推导式遍历获取所有工作表名称 。
>>> [sheet.title for sheet in wb]['new_sheet', '一等奖', '二等奖']使用 wb[sheetname] 来获取一个工作表对象
>>> wb['二等奖']<Worksheet "二等奖">获取活动表(即打开工作簿首先出现的工作表) 。
>>> wb.active<Worksheet "一等奖">获取工作表行列信息 。
>>> sheet1 = wb['一等奖']>>> sheet1.max_column7>>> sheet1.max_row6获取单元格信息访问某个单元格>>> sheet1['D3']<Cell '一等奖'.D3>>>> sheet1.cell(row=3, column=4)<Cell '一等奖'.D3>如果访问单元格式添加 value 参数则会修改当前单元格的值 。
>>> sheet1.cell(3, 4).value'基于Spark、Python的医护人员信息抽取与管理'>>> sheet1.cell(3, 4, value=https://www.isolves.com/it/cxkf/yy/Python/2021-12-07/'Python')>>> sheet1.cell(3, 4).value'Python'获取单元格的值、坐标、行索引、列索引 。
>>> sheet1['D3'].value'Python'>>> sheet1['D3'].coordinate'D3'>>> sheet1['D3'].row3>>> sheet1['D3'].column4访问多个单元格使用切片来访问多个单元格,这里的切片与列表切片有区别,列表切片是「前闭后开」,Excel 中的切片是「前闭后闭」 。
(1)选取 A1:B2 区域的单元格 。
>>> sheet1['A1':'B2']((<Cell '一等奖'.A1>,<Cell '一等奖'.B1>), (<Cell '一等奖'.A2>,<Cell '一等奖'.B2>))
10分钟学会用Python轻松玩转Excel

文章插图
 
选取单列数据 。
>>> sheet1['D'](<Cell '一等奖'.D1>,... <Cell '一等奖'.D6>)选取B,C列数据 。
>>> sheet1['B:C']((<Cell '一等奖'.B1>,...<Cell '一等奖'.B6>), (<Cell '一等奖'.C1>,...<Cell '一等奖'.C6>))选取单行数据 。
>>> sheet1[3](<Cell '一等奖'.A3>, <Cell '一等奖'.B3>,... <Cell '一等奖'.F3>, <Cell '一等奖'.G3>)选取第2,3行数据 。
>>> sheet1[2:3]((<Cell '一等奖'.A2>,...<Cell '一等奖'.G2>), (<Cell '一等奖'.A3>,...<Cell '一等奖'.G3>))


推荐阅读