python控制excel能达到什么目的_你精通excel吗?不,我精通python操控excel!
过去,在很多金融、市场、行政的招聘中,面试官都会问一句:“你精通 EXCEL 吗?”
但今天,他们可能更喜欢问:“你会 Python 吗?”
越来越多的企业开始用 Python 处理数据,特别是金融、证券、商业、互联网等领域。在顶级公司的高端职位中,Python 更是成为了标配:
Python 究竟有什么法力能让大家如此青睐?
举个例子:在过去,如果老板想要获取 A 股所有股票近 2 年的数据,你可能需要 查询-下载-记录到excel 循环数百次,即使你是一个没有感情的复制机器人,也需要一两天的时间。
但如果你掌握了 Python,只需要写个脚本,泡杯咖啡的功夫 数据就全部下载好了。再加上 Python 强大的绘图功能,你可以一次性完成 数据收集 — 整理 — 分析 — 绘图的过程,直接把分析结果用图表呈现出来。
今天本篇文章,我们就总结了一下利用 python 操作 Excel 文件的第三方库和方法。内容出自课程——《OpenPyXL 处理 Excel 基础入门》,欢迎大家来实验边敲代码边学习~
首先,我们来学习一下,如何 用 Python 创建和保存 Excel 文档。
对于经常与数据打交道的人来说,Excel 是经常使用的工具;对于与数据打交道的程序员来说,OpenPyXL 库是一个利器。Python 官方提供了这样一个库,让我们可以直接通过 Python 代码实现对 Excel 文件的操作,操作文件格式包括 xlsx、xlsm、xltx、xltm。
知识点创建/打开工作簿
访问工作表单元及其值
保存工作表
让我们先来学习简单的创建和保存功能。
创建/打开工作簿
首先,下载实验所需 shiyanlou.xlsx 示例文件,同时安装指定版本的 openpyxl 库。
!wget -nc "https://labfile.oss.aliyuncs.com/courses/1585/shiyanlou.xlsx"
!pip install openpyxl==3.0.3
使用 openpyxl 不需要在文件系统上创建文件,只需导入 Workbook 类并开始工作:
教学代码:
from openpyxl import Workbook
wb = Workbook() # 实例化一个工作簿对象
print(wb)
也可以打开本地已有的工作簿进行实验操作:
from openpyxl import load_workbook
wb = load_workbook(filename='shiyanlou.xlsx')
print(wb)
load_workbook 中可以使用以下几个参数:data_only:带有公式的单元格是否具有公式(默认具有)或上一次 Excel 读取工作表时存储的值。
keep_vba:设置是否保留任何 Visual Basic 元素(默认保留),可选择保留但是不支持编辑。
工作簿创建时总是会默认创建一个名为 Sheet 工作表,可以通过使用Workbook.active 属性获取:
ws = wb.active # 获取当前活跃的工作表
print(ws)
也可以通过 Workbook.create_sheet() 创建工作表并命名,若不设置名字参数则默认命名为 sheet,sheet1,sheet2...创建的工作表位置默认总是插入到最后:
ws = wb.create_sheet() # sheet
ws1 = wb.create_sheet("Mysheet") # 命名为 Mysheet
ws2 = wb.create_sheet("Mysheet1", 0) # 新建 Mysheet1 工作表插入到第一个位置
ws3 = wb.create_sheet("Mysheet2", -1) # 新建 Mysheet2 工作表插入到倒数第二个的位置
ws.title = "shiyanlou" # 将上述 ws 工作表重命名为 shiyanlou
print("Success")
默认情况下,工作表的标签背景颜色为白色。我们可以通过Worksheet.sheet_properties.tabColor 属性改变颜色:
ws.sheet_properties.tabColor = "1072BA" # RGB 格式
print(ws.sheet_properties.tabColor)
我们给工作表取名后,可以把它作为该工作簿的一个键,简化后续代码,例如:
ws = wb["shiyanlou"]
print(ws)
若想查看该工作簿下的所有工作表,可以通过函数 Workbook.sheetname:
print(wb.sheetnames)
也可以通过迭代的方式打印所有工作表
for sheet in wb:
print(sheet.title)
我们可以通过 Workbook.copy_worksheet() 方法在单个工作簿中创建工作表的副本:
source = wb.active # 获取活跃的工作表
target = wb.copy_worksheet(source) # 上述获取的工作表为其创建副本
print(target)
访问工作表单元及其值
前面我们已经知道了如何创建获取工作簿及工作表,接下来我们将学习修改单元格的内容。以下操作基于 shiyanlou.xlsx 工作簿中的 shiyanlou 工作表进行。单元格可以直接作为工作表的键进行访问赋值,用 value 属性进行值访问:
c = ws['A4'] # 将访问 A4 单元格
ws['A4'] = 4 # 对 A4 单元格进行赋值
c.value # 访问 A4 单元格的值,同 ws['A4'].value
注意:在内存中创建工作表时,它不包含任何单元格,单元格都是在首次访问时自动创建的。以上代码也可以通过更简便的代码实现:
d = ws.cell(row=4, column=2, value=10) # B4 进行赋值
ws['B4'].value # 访问单元格的值
访问多个单元格
可以使用切片访问范围为 A1 到 C2 的所有单元格:
cell_range = ws['A1':'C2']
cell_range
行或列的范围可以类似地获得:
# 访问列
colC = ws['C']
col_range = ws['C:D']
# 访问行
row10 = ws[10]
row_range = ws[5:10]
print(col_range, row_range)
也可以使用 Worksheet.iter_rows() 返回行:
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for cell_row in row:
print(cell_row)
使用 Worksheet.iter_cols() 返回列:
for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
for cell_col in col:
print(cell_col)
如果需要遍历工作表的所有行或列,则可以使用 Worksheet.rows 属性。出于性能原因,该属性在只读模式下不可用:
ws['C9'] = 'hello world'
tuple(ws.rows)
或者使用 Worksheet.columns 属性。出于性能原因,该属性在只读模式下不可用:
tuple(ws.columns)
访问值
如果只需要工作表中的值,则可以使用该 Worksheet.values 属性。遍历工作表中的所有行,但仅返回单元格值:
for row in ws.values:
for value in row:
print(value)
Worksheet.iter_rows() 和 Worksheet.iter_cols() 可以用 values_only 参数,只返回单元格的值:
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True):
print(row)
保存工作表
将我们之前创建的工作簿保存格式为 xlsx 的文件,若已存在则覆盖:
wb.save("shiyanlou.xlsx")
python控制excel能达到什么目的_你精通excel吗?不,我精通python操控excel!相关推荐
- python金融大数据分析师工资待遇_三年工作经验大佬带你解读 Python金融大数据分析...
内容提要: Python凭借其简单.易读.可扩展性以及拥有巨大而活跃的科学计算社区,在需要分析.处理大量数据的金融行业得到了广泛而迅速的应用,并且成为该行业开发核心应用的首选编程语言.本书提供了使用P ...
- python交互式方式、代码文件方式_涨见识了,在终端执行 Python 代码的 6 种方式
原作:BRETT CANNON 译者:豌豆花下猫@Python猫 英文:https://snarky.ca/the-many-ways-to-pass-code-to-python-from-the- ...
- python语言的使用不需要付费_人生不值得,我在用python.1_关于python
一直喜欢编程,最近决定潜心入坑.起初一直在研究要学什么语言,想过c语言,学过VB(两天...),后来听说了python,功能强大,并且适合小白入手.文笔不行,但还是申请了博客号,以便记录.发表自己的所 ...
- python控制摄像头拍照是反的_使用反向Shell控制摄像头
原标题:使用反向Shell控制摄像头 如果你已经用胶条封住了你的网络摄像头,你可能是因为听说过黑客或NSA可以远程监视你.那么问题来了,这些你素未谋面人又是如何远程连接到你的机器并监视你的呢? 这可能 ...
- python爬取网页表格数据匹配_爬取表格类网站数据并保存为excel文件
本文转载自以下网站:50 行代码爬取东方财富网上市公司 10 年近百万行财务报表数据 https://www.makcyun.top/web_scraping_withpython6.html 主要学 ...
- python 可以用excel做词云图嘛_今天从零教你开始利用Python打造词云图!
1. 量身打造属于你的词云图 今天的Python案例是跟着笔者来打造属于自己的词云图.那么什么是词云图呢?我们在百度中来搜索一下,如图所示: 概念:词云图就是由词汇组成类似云的彩色图形.接下来我们就可 ...
- python控制鼠标点击的包_控制鼠标点击的Python脚本
我用win32api创建了一个小Python脚本,用于流行的游戏Cookie Clicker(一个你必须点击一个大Cookie来获得分数的游戏)只是为了好玩.它有一个名为"自动点击器&quo ...
- python控制手机屏幕亮度的软件_使用Python脚本更改显示器亮度
前言 不管在电脑屏幕前办公还是娱乐,环境光线在变化,看的东西也在变化.显示器的亮度也应该及时调整,白天亮一些,晚上暗一些,打游戏亮一些,看文档暗一些. 如果是笔记本,可以在Win10的任务栏最右边的通 ...
- python控制浏览器不上下滚动失灵_浅谈selenium如何应对网页内容需要鼠标滚动加载的问题...
相信大家在selenium爬取网页的时候都遇到过这样的问题:就是网页内容需要用鼠标滚动加载剩余内容,而不是一次全部加载出网页的全部内容,这个时候如果要模拟翻页的时候就必须加载出全部的内容,不然定位元素 ...
最新文章
- 初窥Go module
- 计算机基础及wps office应用_自考本科计算机应用基础考试大纲
- IOS开发设置应用程序App启动图片
- Idea Spring Boot配置文件.yaml或.properties不能自动提示的有效解决办法
- LeetCode 1230. 抛掷硬币(DP)
- python变量和字符_Python变量和字符串
- 一个mysql复制中断的案例
- 程序员如何在百忙中更有效地利用时间,如何不走岔路,不白忙(忙得要有效率,要有收获)...
- 河南省2020年计算机高考真题,2020年最新版对口高考试卷(计算机).docx
- c语言 增加 删除 修改的功能 不用链表,C语言的链表的创建、修改、添加与删除...
- python属性查找 深入理解(attribute lookup)
- 1086 就不告诉你 (15 分)—PAT (Basic Level) Practice (中文)
- arcgis 接口转换与.Net框架
- html添加右键菜单,JS添加右键菜单
- element input限制输入数字
- a href点击无效_a标签失效的问题
- 电脑连不上网络, 并且宽带连接是灰色的
- 腾讯云部署DevOps
- word2vec-google code
- 使用联机搜索求解Wumpus World