Excel文档的读取(1)

熟悉使用Excel的同学应该都知道,在单个Excel表格里想要分商品计算总销售额,使用数据透视表也可以非常快速方便的获得结果。
但当有非常大量的Excel文件需要处理时,每一个Excel文件单独去做数据透视也会消耗大量的时间。
就算使用Power Query这样的工具进行多表合一,也会有同一个工作表太大导致电脑太卡和所有Excel文件格式必须一样这样的问题。
Python读取、处理Excel文件优势就在于处理大量文件也非常快速以及应付各种不同格式的文件和不同需求的灵活性。

今天,我们将学习解决这个问题的第一步:

读取单个月份Excel表格数据。
剩下的三步将在明天和后天的课程中进行学习,并最终解决阿珍的问题。在开始读取表格数据前, 我们需要先学习一下Excel表格的基本结构。

|-------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 一个Excel表格文件,又叫做一个工作簿(Workbook)。 | |
| 一个工作簿中包含一个或多个工作表(Worksheet)。 在工作薄页面的左下方可以进行工作表的切换和增删。 | |
| 一个工作表由单元格(Cell)组成。Excel的数据存储在单元格中。 我们可以通过列号(Column)和行号(Row)对单元格进行定位。 | |
| 行号默认从数字1开始,并依次递增。 列号默认从字母A开始,依次递增。超过字母Z后,以AA,AB的方式继续计数。 | |
| | |
| 下面,我们通过观察Excel表格来思考一下,如何计算单个月份的销售额: 整个工作簿内一共有两个工作表,要计算销售额,需要用到"销售订单数据"这张表。 这张表的每一行数据为一个订单。 其中每个订单的第C列为商品名,我们可以用来判断是否为"火龙果可乐"。 | |
| 表格中第I列为订单的总价。 当这行订单的C列的商品名是"火龙果可乐"的时候,我们需要把符合要求的订单I列的总价逐个加起来。 总价相加之后,就得到这个月的"火龙果可乐"销售额啦。 | |

根据这个思路,我们得出了整个计算单个月份"火龙果可乐"销售额的步骤:

  1. 读取工作表:"销售订单数据"
  2. 逐行读取订单数据
  3. 把"火龙果可乐"的订单总价相加
    这些步骤我们会在今明两天的课程中去实现。

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 在终端中输入pip install openpyxl安装模块。 |
| 要使用Python对Excel表格进行读取,我们需要安装一个用于读取数据的工具 openpyxl 。openpyxl 是一个用于读、写Excel文件的++开源++ 模块。 安装openpyxl非常简单,在终端中输入代码:++pip install openpyxl++ 即可。 如果在自己电脑上安装不上或安装缓慢,可在命令后添加如下配置进行加速: pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/ |
| |

|----------------------------------------------------------------------------|
| 读取当前运行目录里名为"2019年1月销售订单.xlsx"的工作簿并赋值给变量wb |
| |

|----------------------------------------------------------------------------|
| |

相关推荐
LiAo_1996_Y19 分钟前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_8877245021 分钟前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python
zhangchaoxies24 分钟前
Layui轮播图(carousel)怎么设置自动播放间隔
jvm·数据库·python
FreakStudio43 分钟前
无硬件学LVGL:基于Web模拟器+MiroPython速通GUI开发—布局与空间管理篇
python·单片机·嵌入式·面向对象·并行计算·电子diy
qq_372906932 小时前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发)
jvm·数据库·python
Ulyanov2 小时前
用Pyglet打造AI数字猎人:从零开始的Python游戏开发与强化学习实践
开发语言·人工智能·python
zopple2 小时前
ThinkPHP5常见问题及解决方案
python·php·laravel
23471021273 小时前
4.15 学习笔记
开发语言·软件测试·python
qq_372154233 小时前
SQL嵌套查询中常见报错排查_语法与权限处理
jvm·数据库·python
2401_887724504 小时前
CSS如何设置文字溢出显示省略号_利用text-overflowellipsis
jvm·数据库·python