average_total.py
· 1.5 KiB · Python
Исходник
import openpyxl
# 定义数据范围
data_range = "C5:R39"
# 定义源文件名称数组
source_files = ["./自评总表.xlsx", "./互评总表.xlsx", "./辅导员评分.xlsx", "./最终总表.xlsx"]
# 打开所有源文件
workbooks = [openpyxl.load_workbook(file) for file in source_files]
worksheets = [wb.active for wb in workbooks]
# 解析数据范围
start_cell, end_cell = data_range.split(':')
start_row, start_col = openpyxl.utils.coordinate_to_tuple(start_cell)
end_row, end_col = openpyxl.utils.coordinate_to_tuple(end_cell)
print(f"Data range: ({start_row}, {start_col}) to ({end_row}, {end_col})")
# 遍历数据范围内的每个单元格,计算并存储结果
for row in range(start_row, end_row + 1):
for col in range(start_col, end_col + 1):
# 获取每个源文件中的对应值
value1 = worksheets[0].cell(row=row, column=col).value or 0
value2 = worksheets[1].cell(row=row, column=col).value or 0
value3 = worksheets[2].cell(row=row, column=col).value or 0
# 按照权重进行加权计算
result = value1 * 0.1 + value2 * 0.6 + value3 * 0.3
# 输出计算过程
print(f"Processing cell ({row}, {col}): {value1}*0.1 + {value2}*0.6 + {value3}*0.3 = {result}")
# 将结果存储到第四个文件的对应单元格
worksheets[3].cell(row=row, column=col, value=result)
# 保存结果到表4中
workbooks[3].save(source_files[3])
# 关闭所有工作簿
for wb in workbooks:
wb.close()
1 | import openpyxl |
2 | |
3 | # 定义数据范围 |
4 | data_range = "C5:R39" |
5 | |
6 | # 定义源文件名称数组 |
7 | source_files = ["./自评总表.xlsx", "./互评总表.xlsx", "./辅导员评分.xlsx", "./最终总表.xlsx"] |
8 | |
9 | # 打开所有源文件 |
10 | workbooks = [openpyxl.load_workbook(file) for file in source_files] |
11 | worksheets = [wb.active for wb in workbooks] |
12 | |
13 | # 解析数据范围 |
14 | start_cell, end_cell = data_range.split(':') |
15 | start_row, start_col = openpyxl.utils.coordinate_to_tuple(start_cell) |
16 | end_row, end_col = openpyxl.utils.coordinate_to_tuple(end_cell) |
17 | |
18 | print(f"Data range: ({start_row}, {start_col}) to ({end_row}, {end_col})") |
19 | |
20 | # 遍历数据范围内的每个单元格,计算并存储结果 |
21 | for row in range(start_row, end_row + 1): |
22 | for col in range(start_col, end_col + 1): |
23 | # 获取每个源文件中的对应值 |
24 | value1 = worksheets[0].cell(row=row, column=col).value or 0 |
25 | value2 = worksheets[1].cell(row=row, column=col).value or 0 |
26 | value3 = worksheets[2].cell(row=row, column=col).value or 0 |
27 | |
28 | # 按照权重进行加权计算 |
29 | result = value1 * 0.1 + value2 * 0.6 + value3 * 0.3 |
30 | |
31 | # 输出计算过程 |
32 | print(f"Processing cell ({row}, {col}): {value1}*0.1 + {value2}*0.6 + {value3}*0.3 = {result}") |
33 | |
34 | # 将结果存储到第四个文件的对应单元格 |
35 | worksheets[3].cell(row=row, column=col, value=result) |
36 | |
37 | # 保存结果到表4中 |
38 | workbooks[3].save(source_files[3]) |
39 | |
40 | # 关闭所有工作簿 |
41 | for wb in workbooks: |
42 | wb.close() |
43 |