Python + Excel 办公自动化 01 —— 硬菜马上就来

简介: Python + Excel 办公自动化 01 —— 硬菜马上就来

决定写这套 Python 教程时,实属偶然,单纯地为了满足一个小女孩儿她极强的好胜心。小外甥女有天去找同学玩儿,恰好碰到人家在学 Scratch 编程,一种图形化的编程工具。她一眼就喜欢上了,回来跟我说,她也想学,感觉超酷的,等学会了,以后在学校里也能得瑟一下。

既然是要去得瑟,感觉 Scratch 还是太简单了些,还不如教她正式的编程,从小要是能持续积累一些编程经验,未来对她的成长大有帮助。其它不说,编程中最基本的逻辑判断能力、英文阅读能力,长期积累下来,足以能够让她在生活中更独立,能读更多的外文图书、资料。

我想教她一门,随时拿起来就能用的「工具」,首先排除了 Java、C 这类过于庞杂的语言,太枯燥了;也想过要不学点儿小程序开发吧,但我不太想她一直抱着手机,而且小程序等一些前端的技术会让人过于在意它「好不好看」,对于美不美这件事儿,我实在搞不定。

最后,决定带她学 Python,一种能解释执行的脚本语言。我尤其喜欢它能灵活处理数据这块儿,比如,等她学会怎么用 Python 进行数据分析了,她可以去做一个近几年高考中英语的高频词汇有哪些的分析,这对她自己的学习本身就有巨大的帮助。

1、Python 初识

「人生苦短,我用 Python」,因为 Python 语法简单,容易上手,目前已经成为最流行的,也是最适合初学者入门学习的编程语言之一。

编程语言尤其多,各有各的优点,但 Python 颇受开发者和分析师的青睐,主要是它拥有如下几个大家非常喜爱的特点:

  • 简单易学
  • 语法结构简单,对初学者来说,学习门槛低,极易上手
  • 运行够快
  • Python 底层由 C 语言来实现,包括很多第三方库也都是由 C 来实现,运行速度足够快
  • 高级语言
  • 使用高级语言,我们不需要额外关注内存管理,也不需要过多操心其系统架构
  • 表现力强
  • Python 非常人性化地提供了很多的构造,让我们可以专注于解决方案,而不是如何把程序写漂亮
  • 免费开源
  • Python 及其第三方库是开源且免费的,对开发者来说是莫大的福音,我能可以直接通过其官网下载获取
  • 可移植性
  • 目前 Python 可以被移植到 Linux 系统

Python 的生态极为丰富,拥有很多丰富且很强大的库(模块),基于这些模块,在处理很多复杂场景下的问题时,我们只需要掌握少量的代码,就可以解决了。

在接下来的内容中,我会通过不同场景中的案例,演示问题的分析到解决的过程和细节。包括数据的读取、清洗过滤、可视化等,还有办公自动化有关的 Excel、Word、PPT 等文件的操作,甚至某些通信工具的机器人开发,都会涉及。

此外,Python 还可以应用在数据分析、网站建设、游戏开发等方面。

2、什么是办公自动化?

职场中的我们,或多或少都会做一些重复性的工作,而且还要耗费大量的时间和精力,更尴尬的是时不时还出错,还不容易发现。

像企业里的人事、财务等等部门,大量的极其琐碎、重复的文档类操作,无时无刻不在消磨同事们的积极性。比如,每个月核算员工工资,通过邮件发送工资条,都能让他们不可避免地加班。

我们是否可以通过 Python 程序,来把这些重复且繁杂的单调工作,实现自动化来省下大量的时间呢?答案是,肯定可以,完全没问题,技术是无比强大的。

如何把自己工作中那些大量的极其琐碎、重复的工作,交给计算机,交给 Python 程序来处理呢?其实很简单,咱可以围绕这几步来实现:

第一步,认真去观察、思考,在日常工作中,你所负责的部分,哪些是琐碎又重复的,具体由哪几个步骤构成的,并把它们详细地拆解出来;

第二步,仔细思考,判断刚刚拆解出来的这几步,是否可以完全交给程序来完成,最终目的,就是把你的某个目标,合理地拆成多个可执行的小步骤;

第三步,接下来的,就交给程序来帮你完成这些步骤。

我们来看个例子,公司每个月都要给所有员工发工资,至少要涉及人事和财务两个部门。有的企业是财务部门会计,有的是人事部门人事会计,根据每个公司的系统或工作流程,计算工资的部门也不同。

在这里,我们按先由人事部门根据正常出勤和业绩考核、五险一金等来算出每个员工的薪资,再提交至财务部门核对,确认无误后则将薪资发放至银行卡,最后人事部门再将每月工资条通过邮件同步至每位员工。

我们来拆解一下,有两大步:

第一步,使用 Python 处理 Excel 数据;

第二步,设置邮箱和发送邮件。

但是你看,还不够细,我们还可以进一步拆解:

第一步,使用 Python 处理 Excel 数据

  • 自动登录公司后台管理系统;
  • 自动访问员工信息页面;
  • 自动爬取员工单月信息;
  • 自动统计员工薪资并生成 Excel 文档;
  • 自动提交人事、财务部门进行核查;
  • 自动发放薪资;

第二步,设置邮箱和发送邮件

  • 自动读取 Excel 文件数据;
  • 自动拆解每位员工的信息并生成个人 Excel 文件作为工资条;
  • 自动登录邮箱;
  • 自动给每位员工发送包含个人薪资信息的邮件;

你看,是不是拆解之后,每一步都很清晰且可执行。你只需要花点儿时间,将所有步骤通过程序来实现,那你就不仅能大幅度提高工作效率,还能避免没必要的错误,最重要的是能省下大量的时间和精力去做更加有意义的事情。

3、搭建 Python 开发环境

在咱们正式使用 Python 之前,先要把 Python 的开发环境搭建好,工欲善其事,必先利其器。主要是为了咱们后面把程序写好了之后,计算机能够识别出来,并且还能让程序跑起来,最终才能看到程序的执行效果。

这里需要给大家依次介绍几个重要工具的安装和使用方式,分别是:

  • 如何安装 Python?
  • 如何安装最流行的 Anaconda 集成开发环境?
  • 如何安装 Jupytere 库?
  • 如何安装和使用 pip 库管理工具?

3.1 安装 Python

这是比较原始的安装方式,此处仅要求了解即可,接下来会给大家介绍更方便的 Anaconda 集成开发环境的搭建方式。

Python 一种能解释执行的脚本语言,我们在电脑上安装 Python,实际上是安装了一套 Python 的解释器,为的是能让计算机能懂咱们写的 Python 代码想干嘛,要不电脑哪知道你要做什么呢?

Python 解释器是一款应用程序,它会将写好的 Python 程序按照其语法规则,去翻译成计算机可以识别且能够运行的机器码。

接着,我们去访问 Python 官网(https://www.python.org/),鼠标悬浮在 Downloads 标签上,就能看到针对你当前操作系统适用的 Python 版本的下载按钮,直接点击即可。

如果你用的是 Mac OS,也就是苹果电脑,在系统中通常已经安装了 Python,你可以打开「终端应用」,并输入 python -V 命令来检查现有版本。

如果你的 Python 版本还是 2.x,那么建议你下载并安装 3.x 版本。点击上面的下载按钮后,你将得到一个「python-3.10.5-macos11.pkg」文件。

第一步,双击打开 pkg 文件,开始安装。

第二步,按照「Python 安装向导器」的步骤,一步一步向下安装即可。安装过程非常简单,在弹出来的对话框,你直接点「继续」。接着,还需要你「同意」软件许可协议。

然后,选择安装的位置,建议默认不做任何改变,直接「安装」即可,直至安装成功。

第三步,我们再次打开「终端应用」,并输入 python -V 命令,就可以看到刚安装好的最新版本。

3.2 安装 Anaconda 集成开发环境

极力推荐大家安装 Anaconda,也是目前最流行的方式,在 Anaconda 集成环境中,我们不仅拥有了 Python 编程环境,还可以使用 Jupyter Notebook 编辑器,而且系统还会帮咱自动安装好一些常用的第三方库,省下不少功夫。

通过浏览器访问 Anaconda 官网(https://www.anaconda.com/products/distribution),官方提供了个人和商业版,它还支持 Mac OS、Windows、Linux 三大操作系统。咱们选择符合自己电脑系统的版本即可,这里我使用的是 Mac OS,直接点击「Download」按钮开始下载即可,你将得到一个「Anaconda3-2022.05-MacOSX-x86_64.pkg」文件。

第一步,双击打开 pkg 文件,开始安装,安装步骤跟安装 Python 几乎一致。

第二步,按照「Anaconda 安装向导器」的步骤,一步一步向下安装即可。安装过程非常简单,在弹出来的对话框,你直接点「继续」。接着,还需要你「同意」软件许可协议。

然后,选择安装的位置,建议默认不做任何改变,直接「安装」即可,直至安装成功。

第三步,在「应用程序」中,找到「Anaconda-Navigator」并打开,咱们就可以看到一个工作台了。可以看到,有些工具已经安装好了,比如 Jupyter Notebook,你直接点它下面的 Launch 按钮就能启动了。

3.3 使用 Jupyter 库

3.3.1 认识 Jupyter Notebook 和 JupyterLab

当 Anaconda 安装好之后,咱的 Jupyter Notebook 和 JupyterLab 两款工具也被安装好了,它们属于 Jupyter 库,是比较常用的开发环境。

Jupyter Notebook 是一款通过在浏览器中使用的优秀「交互式」编辑工具,咱们可以通过它来编写和执行 Python 代码。它还能够将代码、文字做到很好的融合,特博是在写完代码后,马上执行就能看到反馈。

比如,我通过代码画了一张「条形图」,特别简单:

3.3.2 使用 Jupyter Notebook

接着,我们就来研究一下,如何通过 Jupyter Notebook 来编写和执行 Python 代码。

第一步,在 Anaconda 工作台上,点击 Jupyter Notebook 下面的 Launch 按钮,启动之后会自动通过浏览器打开它的工作台,接着就可以看到如下页面;

第二步,选择进入合适的路径后,你就可以点击「新建」,再选择「Python3」就可以创建一个新的笔记本了;

第三步,来吧,直接在文本框中输入一句代码,用的是 print() 函数 —— 它能够实现打印效果,知识确实超前了,但没有关系,现在我们只作观察,并不需要我们掌握它。

.

第四步,代码写好之后,需要运行它才能看得到结果。在菜单栏中,点击「运行」按钮,接着你就能在下一行看到打印出来的结果,确实很简单。

到此为止,我们迈出了最重要的一步,编写并运行了第一行 Python 代码。

3.3.3 使用 JupyterLab

JupyterLab 是 Jupyter Note 的最新一代产品,而且还集成了更多更好用的功能,它支持使用 Python 来实现数据分析、数据可视化等操作,目前颇受大家的喜爱。

第一步,在 Anaconda 工作台上,点击 JupyterLab 下面的 Launch 按钮,启动之后会自动通过浏览器打开它的工作台,接着就可以看到如下页面;

JupyterLab 窗口左侧一栏,是系统工作路径,也是我们存放笔记本的路径;右侧主要有 Notebook、Console、Other 等三大块儿,是所要创建笔记本的类型,还有一些常用文件的类型。

第二步,左边选好对应路径后,再选择创建「Notebook」类型的笔记本,就可以开始编写代码了。

编写了一个 print() 函数,在函数中指定了“I Love Python”字符,并将其运行打印了,结果如图所示:

是不是也很简单?后面,我们的案例默认使用 JupyterLab 来编写和运行。

原创不易,如果您也学会了,欢迎来一个「三连」鼓励下呗,点赞、关注、转发,谢谢!

目录
相关文章
|
19天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
6天前
|
Python
python_读写excel、csv记录
python_读写excel、csv记录
10 0
|
5天前
|
Web App开发 人工智能 Java
Python Selenium实现自动化测试及Chrome驱动使用
Python Selenium实现自动化测试及Chrome驱动使用
9 2
|
7天前
|
测试技术 API 网络架构
Python的api自动化测试 编写测试用例
【4月更文挑战第18天】使用Python进行API自动化测试,可以结合`requests`库发送HTTP请求和`unittest`(或`pytest`)编写测试用例。以下示例: 1. 安装必要库:`pip install requests unittest` 2. 创建`test_api.py`,导入库,定义基础URL。 3. 创建继承自`unittest.TestCase`的测试类,包含`setUp`和`tearDown`方法。 4. 编写测试用例,如`test_get_users`,检查响应状态码和内容。 5. 运行测试:`python -m unittest test_api.py`
13 2
|
7天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
12 3
|
7天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
28 0
|
8天前
|
Python
Python异步编程|PySimpleGUI界面读取PDF转换Excel
Python异步编程|PySimpleGUI界面读取PDF转换Excel
15 1
|
8天前
|
测试技术 持续交付 API
Python的UI自动化测试
【4月更文挑战第17天】Python UI自动化测试涉及Selenium(Web)、Appium(移动应用)和PyQt(桌面应用)等框架。基本步骤包括确定测试目标、选择合适框架、安装配置、编写测试脚本、运行调试以及集成到CI/CD流程。注意自动化测试不能完全取代人工测试,应根据需求平衡使用。
8 1
|
9天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
22 0
|
9天前
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
13 6