具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再生成随机数作为学生的考试成绩。
首先要用到的数据库有:xlwt,xlrd,random这三个数据库。
命令如下:
import xlwt
import xlrd
import random
现有一份表格内容如下图:
现在我们需要提取这其中的B1—C14。
(提示:在对这份电子表格进行操作的时候,要使用到这个电子表格的地址,即表格的储存位置。) excel=xlrd.open_workbook(G:\python\新建文件夹\表1.xlsx') #打开并读取表格 sheet=excel.sheets()[0] #在原表1中提取第一页中的数据。对excel进行处理时,行列页都是从0开始进行计算 wb=xlwt.Workbook() #创立一个新的excel表格 ws =wb.add_sheet('成绩单') #第一页命名为成绩单 (如果要进行多页操作,要将学号姓名放到两页excel表格中的话可以如下操作: ws1=wb.add_sheet('1班成绩单') ws2=wb.add_sheet('2班成绩单') )
创建两个list:
a=[] b=[] (这两个list是用来临时存放学号与姓名的) for i in range (1,14): #在大二下学期15级成绩汇总.xlsx表中提取出姓名与学号 a .append(sheet.row_values(i,1,2)) #提取第i行的第1个数,即这个命令抽取的是表中的学号列 b .append(sheet.row_values(i,2,3)) #提取第i行的第2个数,即这个命令抽取的是表中的姓名列
在此特比注意:excel中行与列均是从0开始计算的,即表中第1行第1列在进行处理运行时为第0行第0列,表中第2行第2列在进行处理运行时为第1行第1列。表中sheet也是从0开始算起。
解释一下: a .append(sheet.row_values(i,1,2))在经过几次错误后我发现,i是指第i行, 1,2 这两个是一段范围。即取的是第1个值,按照上面注意的说,就是表中第二个框格的值。
如果对此有疑问可以试一下将 1,2 修改一个值进行尝试。
for n in range(13): #将学号与姓名写入新建的表格中,并写在第1页,人数为13人。 ws.write(n,0,a[n][0]) ws.write(n,1,b[n][0])
提醒:为什么这里要用a[n][0]而不是a[n]?这个是我自己水平有限制的原因。因为在提取表中数据放入a,b两个list中他们的形式是:a=[[111],[112],[113]……]的形式,对于这一点的解决方法我还没想出来,因此只能靠a[n][0]这样的形式来解决。因为在写入新的表格过程中不能将list整个放入框格中,只能放入文本或者其他框格允许的格式。如果你们有什么比较好的方法可以提出来我们一起交流学习,感激不尽。
for q in range(13): #对1班所有人的成绩进行随机抽取数据 ran=random.randint(60,91) if ran<=70: ws1.write(q,2,'及格({0})'.format(ran)) if ran>70 and ran<=80: ws1.write(q,2,'中等({0})'.format(ran)) if ran>80 and ran<=90: ws1.write(q,2,'良好({0})'.format(ran)) wb.save('15资环1,2班地理信息系统实习成绩.xls') #将新建的表格保存为'15资环1,2班地理信息系统实习成绩.xls'文件
以下代码是由两个班的数据进行运算。
原来的表格为:
import xlwt #引入xlwt数据库用来将数据写入excel文档中 import xlrd #引入xlrd数据库用来从excel中读取数据 import random #引入random数据库给出随机数 excel=xlrd.open_workbook('G:\python\新建文件夹\表1.xlsx') #从一个已有学号与姓名的excel表格中提取出对应的学号和姓名 sheet=excel.sheets()[0] wb=xlwt.Workbook() #创立一个新的excel表格 ws1=wb.add_sheet('1班成绩单') #第一页命名为1班成绩单 ws2=wb.add_sheet('2班成绩单') #第一页命名为2班成绩单 a1=[] #表1中的学号列 a2=[] #表2中的学号列 b1=[] #表1中的姓名列 b2=[] #表2中的姓名列 for i in range (1,14): #表1.xlsx表中提取出1班的姓名与学号 a1.append(sheet.row_values(i,1,2)) b1.append(sheet.row_values(i,2,3)) for j in range (14,33): #在表1.xlsx表中提取出1班的姓名与学号 a2.append(sheet.row_values(j,1,2)) b2.append(sheet.row_values(j,2,3)) for n in range(13): #将1班学号与姓名写入新建的表格中,并写在第1页.1班人数为13人 ws1.write(n,0,a1[n][0]) ws1.write(n,1,b1[n][0]) for m in range(19): #将2班学号与姓名写入新建的表格中,并写在第2页.2班人数为19人 ws2.write(m,0,a2[m][0]) ws2.write(m,1,b2[m][0]) for q in range(13): #对1班所有人的成绩进行随机抽取数据 ran=random.randint(60,91) #分数为60-90之间 if ran<=70: ws1.write(q,2,'及格({0})'.format(ran)) #以下表示在各分数段的等级 if ran>70 and ran<=80: ws1.write(q,2,'中等({0})'.format(ran)) if ran>80 and ran<=90: ws1.write(q,2,'良好({0})'.format(ran)) for d in range(19): #对2班所有人的成绩进行随机抽取数据 ran=random.randint(60,91) if ran<=70: ws2.write(d,2,'及格({0})'.format(ran)) if ran>70 and ran<=80: ws2.write(d,2,'中等({0})'.format(ran)) if ran>80 and ran<=90: ws2.write(d,2,'良好({0})'.format(ran))
wb.save('15资环1,2班地理信息系统实习成绩.xls') #将新建的表格保存为'15资环1,2班地理信息系统实习成绩.xls'文件
结果如下:
总结
以上所述是小编给大家介绍的基于python实现在excel中读取与生成随机数写入excel中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]