目录
一、系列文章链接
(一):程序介绍和流程图
(二):主要文件main.py
(三):基础文件basics.py
(四):管理学生信息manage.py
(五):查询学生信息query.py
(六):导入数据文件import_data.py
(七):导出数据文件export_data.py
二、实现效果
(1)写入全新的文件
①导出全部信息
②导出学生信息
因为之前已经导出全部信息,全部信息包含了学生信息,所以不能导出。
③导出排序信息
结果:导出后的表格:
(2)追加写入已有的文件
注:导出部分两个选项的区别主要在于参数的不同,除此之外是差不多的,于是这个只举了一个例子。
导出排序信息
结果:导出后的表格:
三、export_data.py的函数简介
-
def main( cn):
“”“判断是否有学生存在,并根据选项调用new和old函数”"" -
def main_show():
“”“主函数的显示”"" -
def new( cn):
“”“写入全新的文件”"" -
def old( cn):
“”“追加写入已有文件”""
(1)以下是被new和old调用的
-
def newold_show():
“”“用于new和old的显示”"" -
def write_all( cn, file, count):
“”“导出全部信息到xls文件中”"" -
def write_students( cn, file, count):
“”“导出学生信息到xls文件中”"" -
def write_courses( cn, file, count):
“”“导出课程信息到xls文件中”"" -
def write_reports( cn, file, count):
“”“导出成绩信息到xls文件中”"" -
def write_sort( cn, file, count):
“”“导出排序信息到xls文件中”""
(2)以下是被write_sort函数调用的
-
def sort_show():
“”“write_sort的显示函数”"" -
def write_total( cn, file, count):
“”“按总分排序查看”"" -
def write_single( cn, file, count):
“”“按单科成绩排序”"" -
def single( cn, file, cname, count):
“”“按write_single的选择导入数据”"" -
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