第11节,计算收入与支出总和

1. 数据说明

数据地址: ./basic_op/data/求某一列的和.xlsx

数据只有三列,你需要计算6个月支出的总和与收入的总和。

2. 思路分析

使用openpyxl, 可以根据列的索引,轻松的获取一列数据,但对于这份数据,我们只要数据的部分,因此我实现了一个函数

def get_values(column_or_row, start_index, end_index):
    """
    获取一列,或者一行的所有数据,根据start_index 和 end_index 来确定切片范围
    :param column_or_row: 列,或者行对象
    :param start_index: 开始的索引
    :param end_index: 结束的索引
    :return:
    """
    pass

之所以要写这个函数,是因为有两列数据需要计算和,相同的代码,我不想写两次,这个函数是完成此项任务的关键点。

3. 完整示例代码

from openpyxl import load_workbook

file_path = './basic_op/data/求某一列的和.xlsx'
workbook = load_workbook(file_path)

sheet = workbook.worksheets[0]      # 获得需要操作的sheet对象
pay_column = sheet['B']


def get_values(column_or_row, start_index, end_index):
    """
    获取一列,或者一行的所有数据,根据start_index 和 end_index 来确定切片范围
    :param column_or_row: 列,或者行对象
    :param start_index: 开始的索引
    :param end_index: 结束的索引
    :return:
    """
    lst = []
    for index in range(start_index, end_index):
        lst.append(column_or_row[index].value)

    return lst

pay_column_values = get_values(pay_column, 1, len(pay_column)-1)
sheet.cell(row=sheet.max_row, column=2).value = sum(pay_column_values)

income_column_values = get_values(sheet['C'], 1, len(sheet['C'])-1)
sheet.cell(row=sheet.max_row, column=3).value = sum(income_column_values)

workbook.save(file_path)

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案