结合sqlite3的学生信息成绩管理系统(七):导出数据文件export_data.py

本文详细介绍了如何使用Python的sqlite3模块来实现学生信息成绩管理系统的数据导出功能,包括创建新文件写入全部信息、追加已有文件以及导出排序信息。文章涵盖导出函数的实现、主函数逻辑和不同导出选项的展示。
摘要由CSDN通过智能技术生成

一、系列文章链接

(一):程序介绍和流程图
(二):主要文件main.py
(三):基础文件basics.py
(四):管理学生信息manage.py
(五):查询学生信息query.py
(六):导入数据文件import_data.py
(七):导出数据文件export_data.py

二、实现效果

在这里插入图片描述

(1)写入全新的文件

在这里插入图片描述
在这里插入图片描述

①导出全部信息

在这里插入图片描述

②导出学生信息

因为之前已经导出全部信息,全部信息包含了学生信息,所以不能导出。
在这里插入图片描述

③导出排序信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结果:导出后的表格:

在这里插入图片描述

(2)追加写入已有的文件

在这里插入图片描述
在这里插入图片描述
注:导出部分两个选项的区别主要在于参数的不同,除此之外是差不多的,于是这个只举了一个例子。

导出排序信息

在这里插入图片描述
在这里插入图片描述

结果:导出后的表格:

在这里插入图片描述

三、export_data.py的函数简介

  1. def main( cn):
    “”“判断是否有学生存在,并根据选项调用new和old函数”""

  2. def main_show():
    “”“主函数的显示”""

  3. def new( cn):
    “”“写入全新的文件”""

  4. def old( cn):
    “”“追加写入已有文件”""

(1)以下是被new和old调用的

  1. def newold_show():
    “”“用于new和old的显示”""

  2. def write_all( cn, file, count):
    “”“导出全部信息到xls文件中”""

  3. def write_students( cn, file, count):
    “”“导出学生信息到xls文件中”""

  4. def write_courses( cn, file, count):
    “”“导出课程信息到xls文件中”""

  5. def write_reports( cn, file, count):
    “”“导出成绩信息到xls文件中”""

  6. def write_sort( cn, file, count):
    “”“导出排序信息到xls文件中”""

(2)以下是被write_sort函数调用的

  1. def sort_show():
    “”“write_sort的显示函数”""

  2. def write_total( cn, file, count):
    “”“按总分排序查看”""

  3. def write_single( cn, file, count):
    “”“按单科成绩排序”""

  4. def single( cn, file, cname, count):
    “”“按write_single的选择导入数据”""

  5. def cname_to_cno( cn, cname):
    “”“将cname转换成cno”""

四、代码

import os
import xlwt, xlrd
from xlutils.copy import copy
import basics as ba

def newold_show():
    """用于new和old的显示"""
    print("****************************")
    print("\t 1:导出全部信息")
    print("\t 2:导出学生信息")
    print("\t 3:导出课程信息")
    print("\t 4:导出成绩信息")
    print("\t 5:导出排序信息")
    print("\t 0:返回导出菜单")
    print("****************************\n")

def write_all( cn, file, count):
    """导出全部信息到xls文件中"""
    write_students( cn, file, count)
    write_courses( cn, file, 1)
    write_reports( cn, file, 1)
    print("全部信息到入%s完毕" % file)

def write_students( cn, file, count):
    """导出学生信息到xls文件中"""
    if count == 0:
        new_workbook = xlwt.Workbook()
        new_sheet = new_workbook.add_sheet("Students")
    else:
        wb = xlrd.open_workbook( file,formatting_info=True)
        newb = copy(wb)
        try:
            new_sheet = newb.add_sheet("Students")
        except Exception:
            print("已经存在Students表,请重新输入")
            return

    # 写名称,在表格的第一行
    new_sheet.write(0,0,"Sno")
    new_sheet.write(0,1,"Sname")
    new_sheet.write(0,2,"Sgender")
    new_sheet.write(0,3,"Sbirth")
    new_sheet.write(0,4,"Sclass")
    new_sheet.write(0,5,"Snative")

    sql = '''SELECT DISTINCT Sno, Sname, Sgender, 
                    Sbirth, Sclass, Snative
             FROM Students
             ORDER BY Sno ASC
         '''
    information = ba.common( cn, sql)

    for i, item in enumerate( information, start=1):
        for j in range( 0, 6):
            new_sheet.write( i, j, item[j])

    if count == 0:
        new_workbook.save( file)
    else:
        newb.save( file)
    print("学生信息到入%s完毕" % file)

def write_courses( cn, file, count):
    """导出课程信息到xls文件中"""
    if count == 0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值