“火龙果可乐”哪个月份的销售额最高?
前面的课程中,我们已经掌握了计算单月“火龙果可乐”销售额的方法。
要计算多个月份的“火龙果可乐”销售额,只需把计算单月金额的代码重复执行多次即可。
要让代码重复执行多次,一种方法,是可以把这段代码复制粘贴多次。
代码如下:
# 导入openpyxl模块
import openpyxl
# 将以下所有代码复制粘贴12次,计算每个月的“火龙果可乐”的销售额
wb = openpyxl.load_workbook("2019年1月销售订单.xlsx", data_only=True)
# 通过工作簿对象wb获取名为“销售订单数据”的工作表对象,并赋值给变量orderSheet
orderSheet = wb["销售订单数据"]
# 定义一个变量colaSold用来表示本月“火龙果可乐”的销售金额
colaSold = 0
# 遍历工作表的所有行数据
for rowData in orderSheet.rows:
# 商品名C列是第3列,索引也就是2
productName = rowData[2].value
# 获取订单总价I列的索引和总价
priceIndex = openpyxl.utils.cell.column_index_from_string("I") - 1
price = rowData[priceIndex].value
# 判断如果productName是“火龙果可乐”
if productName == "火龙果可乐":
# 逐个添加总价到本月销售额(colaSold)里
colaSold = colaSold + price
# 打印出本月销售额,格式为:2019年1月火龙果可乐销售额为{销售总额}元
print(f"2019年1月火龙果可乐销售额为{colaSold}元")
代码逐步解析
下面是对给定代码的逐步解析,解释每个部分的功能以及如何计算每个月的“火龙果可乐”销售额。
```python
# 导入openpyxl模块
import openpyxl
这行代码导入了 `openpyxl` 模块,该模块用于读取和写入 Excel 文件(.xlsx 格式)。
```python
# 将以下所有代码复制粘贴12次,计算每个月的“火龙果可乐”的销售额
wb = openpyxl.load_workbook("2019年1月销售订单.xlsx", data_only=True)
这里加载名为 `2019年1月销售订单.xlsx` 的 Excel 文件,并将其保存为工作簿对象 `wb`。`data_only=True` 参数表示只读取公式计算后的值,而不是公式本身。
# 通过工作簿对象wb获取名为“销售订单数据”的工作表对象,并赋值给变量orderSheet
orderSheet = wb["销售订单数据"]
这行代码从工作簿中获取名为“销售订单数据”的工作表,并将其赋值给变量 `orderSheet`,以便后续使用。
# 定义一个变量colaSold用来表示本月“火龙果可乐”的销售金额
colaSold = 0
这行代码初始化一个变量 `colaSold`,用于累计本月“火龙果可乐”的销售额,初始值为 0。
# 遍历工作表的所有行数据
for rowData in orderSheet.rows:
这里使用 `for` 循环遍历工作表中的每一行数据,`rowData` 每次循环代表当前行的所有单元格。
# 商品名C列是第3列,索引也就是2
productName = rowData[2].value
```
在这一行中,获取当前行中第 3 列(索引为 2, 因为索引从 0 开始)的值,代表商品名称,并赋值给 `productName` 变量。
```python
# 获取订单总价I列的索引和总价
priceIndex = openpyxl.utils.cell.column_index_from_string("I") - 1
price = rowData[priceIndex].value
```
这两行代码首先使用 `openpyxl.utils.cell.column_index_from_string("I")` 获取第 I 列的索引(9),然后减去 1 得到实际索引(8)。接着,获取当前行中第 I 列的值,即订单总价,并赋值给 `price` 变量。
```python
# 判断如果productName是“火龙果可乐”
if productName == "火龙果可乐":
```
此行代码检查 `productName` 是否等于“火龙果可乐”,如果是的话,执行下面的代码块。
```python
# 逐个添加总价到本月销售额(colaSold)里
colaSold = colaSold + price
```
如果条件成立,则将当前订单的总价 `price` 加入到 `colaSold` 中,以累计“火龙果可乐”的销售额。
```python
# 打印出本月销售额,格式为:2019年1月火龙果可乐销售额为{销售总额}元
print(f"2019年1月火龙果可乐销售额为{colaSold}元")
```
最后,使用 `print` 函数输出本月“火龙果可乐”的销售总额,格式化为指定的字符串。
### 复制代码以计算每个月的销售额
为了计算每个月的“火龙果可乐”销售额,您可以将上述代码复制并粘贴 12 次,并相应地更改文件名和打印输出的格式。每个月的文件名应当对应于实际文件,例如:
```python
# 2019年1月
# 复制并修改为
wb = openpyxl.load_workbook("2019年2月销售订单.xlsx", data_only=True)
# ...
print(f"2019年2月火龙果可乐销售额为{colaSold}元")
```
以此类推,直到 2019 年 12 月。
### 示例
以下是一个完整的示例,用于计算 2019 年每个月的“火龙果可乐”销售额:
```python
import openpyxl
for month in range(1, 13): # 1 到 12 月
# 格式化月份为两位数
month_str = f"{month:02d}"