数据地址: ./basic_op/data/求某一列的和.xlsx
数据只有三列,你需要计算6个月支出的总和与收入的总和。
使用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
之所以要写这个函数,是因为有两列数据需要计算和,相同的代码,我不想写两次,这个函数是完成此项任务的关键点。
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