牛刀小试1.0常规方法操作excel表

自动化综合测评计算系统

生活情景引入:

   我所在学校每年都要进行评奖评优,其依据主要为综合测评成绩(简称:综测),而综测成绩需要人工计算或用excel表格。

编程需求:

   1.实现自动计算生成结果。
   2.操作简单,要易于全系推广。

##编程 实现如下

# -*- coding: utf-8 -*-
import xdrlib ,sys
import xlrd
import xlwt
import numpy as np
import pandas
import time

def open_excel(filename):  #打开excel的自定义函数
    try:
        data = xlrd.open_workbook(filename)
        return data

    except Exception :
        print(u"打开文件失败")
        print(u"失败原因:可能模板文件名被篡改")
def safe_float(number):
    try:
        return float(number)
    except:
        return 0


def print_ceter(str1):         #居中显示
        print(str1.center(180))


def logo():
    print_ceter(u"欢迎使用综合测评个人计算系统")
    print_ceter(u"        电气工程系综合测评专用")
    print_ceter(u"             版权所有:zhoy工作室")
    print_ceter(u"                      作者:zhoy")

#数据计算
    data = open_excel(u'信息填写模板(请勿更改文件名).xlsx')  # 此处设置检索文件名;
    table = data.sheets()[0]  # 通过索引顺序获取第一个工作表

    score1 = table.row_values(3)  # 获取第4行数据成绩所在行1
    score2 = table.row_values(6)  # 获取第7行数据成绩所在行2
    credit1 = table.row_values(4)  # 获取第5行数据学分所在行1
    credit2 = table.row_values(7)  # 获取第6行数据学分所在行2
    other = table.row_values(10)  # 获取第11行数据体育、德育所在行

    sum_zhiyu = 0.0   # 智育原始成绩
    sum_zhiyu1 = 0.0  # 智育原始成绩1
    sum_zhiyu2 = 0.0  # 智育原始成绩2
    sum_deyu = 0.0    # 德育原始成绩
    sum_tiyu = 0.0    # 体育原始成绩
    sum_credit = 0.0  # 总学分1
    temp =0.0
    sum_tiyu = (other[0] + other[1]) / 2
    sum_deyu = (other[2] + other[3]) / 2
    j = 0
    for i in range(1, len(score1)):

        if score1[i] != "":
            temp = safe_float(score1[i]) * safe_float(credit1[i])
            sum_zhiyu1 = sum_zhiyu1 + temp
            sum_credit = sum_credit + safe_float(credit1[i])
        else:
            j += 1


    for i in range(1, len(score2)):
        if score2[i] != "":
            temp = safe_float(score1[i]) * safe_float(credit1[i])
            sum_zhiyu2 = sum_zhiyu2 + temp
            sum_credit = sum_credit + safe_float(credit2[i])
        else:
            j += 1
    sum_zhiyu = (sum_zhiyu1 + sum_zhiyu2) / sum_credit

    if not j== 0:
        print(u"温馨提醒:数据中有空白数据:", j,"对" ,"请核对是否正常" )


    print_ceter(u"综合测评报告")
    print(u"测评总分:", ("%.2f" % (sum_zhiyu * 0.7 + sum_deyu * 0.25 + sum_tiyu * 0.05)))
    print(u"智育成绩:", ("%.2f" % sum_zhiyu), end="")
    print(u"     智育积分:", ("%.2f" % (sum_zhiyu * 0.7)))
    print(u"德育成绩:", ("%.2f" % sum_deyu), end="")
    print(u"     德育积分:", ("%.2f" % (sum_deyu * 0.25)))
    print(u"体育成绩:", ("%.2f" % sum_tiyu), end="")
    print(u"     体育积分:", ("%.2f" % (sum_tiyu * 0.05)))





if __name__ == "__main__":

    logo()
    print_ceter(u"本程序由zhoy工作室提供技术支持")
    print_ceter(u"如有疑问及建议请联系我们")
    print_ceter(u"工作室网站:http://www.zhoystudio.work")
    print_ceter(u"工作室邮箱:zhoystudio@163.com")
    print_ceter(u"微信公众号:zhoy工作室")
    print_ceter(u"")
    print_ceter(u"如要再次使用,请填写数据后重新打开本程序    ")
    input()

附件:模板表《信息填写模板(请勿更改文件名).xlsx》
信息填写模板(请勿更改文件名).xlsx运行结果:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值