1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 自动化办公-Python处理Excel生成试卷

自动化办公-Python处理Excel生成试卷

时间:2022-04-03 13:06:18

相关推荐

自动化办公-Python处理Excel生成试卷

效果图

思路

通过处理excel中不同的sheet,将每个题的顺序还有题内选项的顺序随机处理后,生成不同版本的试题

使用到的库

import randomimport xlrdfrom docx import Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPH

获取试题列表

wb = xlrd.open_workbook('./file/试题2.xls')

创建试题列表

class Question:passdef createQuestion(sheet):# 创建试题列表questionList = []for i in range(sheet.nrows):if i > 1:obj = Question()# 题目obj.subject = sheet.cell_value(i, 1, )# 题型obj.questionType = sheet.cell_value(i, 2, )# 选项A,B,C,Dobj.option = []obj.option.append(sheet.cell_value(i, 3))obj.option.append(sheet.cell_value(i, 4))obj.option.append(sheet.cell_value(i, 5))obj.option.append(sheet.cell_value(i, 6))# 分值obj.score = sheet.cell_value(i, 7)questionList.append(obj)# 将序列中所有元素随机排序random.shuffle(questionList)return questionList

生成Word试卷模板

# 生成word试卷模板def createPaper(filename,papername,questionlist):document = Document()# 页眉页脚section = document.sections[0]header = section.headerp1=header.paragraphs[0]p1.text = papernamefooter = section.footerp2=footer.paragraphs[0]p2.text = '内部试题,禁止泄露!!!'# 试卷基本信息title= document.add_heading(papername,level=1)title.alignment = WD_ALIGN_PARAGRAPH.CENTERp3 = document.add_paragraph()p3.add_run('姓名:________')p3.add_run('所属部门:________')p3.alignment = WD_ALIGN_PARAGRAPH.CENTER# 试题信息number =0for question in questionlist:number+=1subject = document.add_paragraph()run = subject.add_run('%d '%number+question.subject)# 题目加粗run.blod=Truesubject.add_run('[%s]分'%str(question.score))# 打乱选项的顺序random.shuffle(question.option)for index,option in enumerate(question.option):document.add_paragraph(('ABCD')[index]+str(option))document.save(filename)

创建试卷

for j in range(len(wb.sheets())):sheet = wb.sheet_by_index(j)for i in range(5):questionList = createQuestion(sheet)createPaper('./file/%s'%sheet.name+str(i+1)+'.docx','%s'%sheet.name+'第一次考试',questionList)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。