最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于python實(shí)現(xiàn)在excel中讀取與生成隨機(jī)數(shù)寫(xiě)入excel中

 更新時(shí)間:2018年01月04日 10:09:21   作者:jie_chen  
最近接個(gè)項(xiàng)目,項(xiàng)目要求是這樣的:在一份已知的excel表格中讀取學(xué)生的學(xué)號(hào)與姓名,再將這些數(shù)據(jù)放到新的excel表中的第一列與第二列,最后再生成隨機(jī)數(shù)作為學(xué)生的考試成績(jī),具體實(shí)現(xiàn)代碼大家參考下本文

具體要求是:在一份已知的excel表格中讀取學(xué)生的學(xué)號(hào)與姓名,再將這些數(shù)據(jù)放到新的excel表中的第一列與第二列,最后再生成隨機(jī)數(shù)作為學(xué)生的考試成績(jī)。

首先要用到的數(shù)據(jù)庫(kù)有:xlwt,xlrd,random這三個(gè)數(shù)據(jù)庫(kù)。

命令如下:

import xlwt

import xlrd

import random

現(xiàn)有一份表格內(nèi)容如下圖:

現(xiàn)在我們需要提取這其中的B1—C14。

(提示:在對(duì)這份電子表格進(jìn)行操作的時(shí)候,要使用到這個(gè)電子表格的地址,即表格的儲(chǔ)存位置。)
excel=xlrd.open_workbook(G:\python\新建文件夾\表1.xlsx')          #打開(kāi)并讀取表格
sheet=excel.sheets()[0]                         #在原表1中提取第一頁(yè)中的數(shù)據(jù)。對(duì)excel進(jìn)行處理時(shí),行列頁(yè)都是從0開(kāi)始進(jìn)行計(jì)算
wb=xlwt.Workbook()                          #創(chuàng)立一個(gè)新的excel表格
ws =wb.add_sheet('成績(jī)單')                      #第一頁(yè)命名為成績(jī)單
(如果要進(jìn)行多頁(yè)操作,要將學(xué)號(hào)姓名放到兩頁(yè)excel表格中的話(huà)可以如下操作:
ws1=wb.add_sheet('1班成績(jī)單')
ws2=wb.add_sheet('2班成績(jī)單')
)

創(chuàng)建兩個(gè)list:

a=[]
b=[]
(這兩個(gè)list是用來(lái)臨時(shí)存放學(xué)號(hào)與姓名的)
for i in range (1,14):           #在大二下學(xué)期15級(jí)成績(jī)匯總.xlsx表中提取出姓名與學(xué)號(hào)
a .append(sheet.row_values(i,1,2))    #提取第i行的第1個(gè)數(shù),即這個(gè)命令抽取的是表中的學(xué)號(hào)列
b .append(sheet.row_values(i,2,3))    #提取第i行的第2個(gè)數(shù),即這個(gè)命令抽取的是表中的姓名列

在此特比注意:excel中行與列均是從0開(kāi)始計(jì)算的,即表中第1行第1列在進(jìn)行處理運(yùn)行時(shí)為第0行第0列,表中第2行第2列在進(jìn)行處理運(yùn)行時(shí)為第1行第1列。表中sheet也是從0開(kāi)始算起。

解釋一下: a .append(sheet.row_values(i,1,2))在經(jīng)過(guò)幾次錯(cuò)誤后我發(fā)現(xiàn),i是指第i行, 1,2 這兩個(gè)是一段范圍。即取的是第1個(gè)值,按照上面注意的說(shuō),就是表中第二個(gè)框格的值。

如果對(duì)此有疑問(wèn)可以試一下將 1,2 修改一個(gè)值進(jìn)行嘗試。

for n in range(13):              #將學(xué)號(hào)與姓名寫(xiě)入新建的表格中,并寫(xiě)在第1頁(yè),人數(shù)為13人。
ws.write(n,0,a[n][0])
ws.write(n,1,b[n][0])

提醒:為什么這里要用a[n][0]而不是a[n]?這個(gè)是我自己水平有限制的原因。因?yàn)樵谔崛”碇袛?shù)據(jù)放入a,b兩個(gè)list中他們的形式是:a=[[111],[112],[113]……]的形式,對(duì)于這一點(diǎn)的解決方法我還沒(méi)想出來(lái),因此只能靠a[n][0]這樣的形式來(lái)解決。因?yàn)樵趯?xiě)入新的表格過(guò)程中不能將list整個(gè)放入框格中,只能放入文本或者其他框格允許的格式。如果你們有什么比較好的方法可以提出來(lái)我們一起交流學(xué)習(xí),感激不盡。

for q in range(13):               #對(duì)1班所有人的成績(jī)進(jìn)行隨機(jī)抽取數(shù)據(jù)
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資環(huán)1,2班地理信息系統(tǒng)實(shí)習(xí)成績(jī).xls')      #將新建的表格保存為'15資環(huán)1,2班地理信息系統(tǒng)實(shí)習(xí)成績(jī).xls'文件

以下代碼是由兩個(gè)班的數(shù)據(jù)進(jìn)行運(yùn)算。

原來(lái)的表格為:

 import xlwt    #引入xlwt數(shù)據(jù)庫(kù)用來(lái)將數(shù)據(jù)寫(xiě)入excel文檔中
 import xlrd    #引入xlrd數(shù)據(jù)庫(kù)用來(lái)從excel中讀取數(shù)據(jù)
 import random    #引入random數(shù)據(jù)庫(kù)給出隨機(jī)數(shù)
 excel=xlrd.open_workbook('G:\python\新建文件夾\表1.xlsx')     #從一個(gè)已有學(xué)號(hào)與姓名的excel表格中提取出對(duì)應(yīng)的學(xué)號(hào)和姓名
 sheet=excel.sheets()[0]
 wb=xlwt.Workbook()         #創(chuàng)立一個(gè)新的excel表格
 ws1=wb.add_sheet('1班成績(jī)單')       #第一頁(yè)命名為1班成績(jī)單
 ws2=wb.add_sheet('2班成績(jī)單')       #第一頁(yè)命名為2班成績(jī)單
 a1=[]             #表1中的學(xué)號(hào)列
 a2=[]             #表2中的學(xué)號(hào)列
 b1=[]             #表1中的姓名列
 b2=[]             #表2中的姓名列
 for i in range (1,14):        #表1.xlsx表中提取出1班的姓名與學(xué)號(hào)
  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班的姓名與學(xué)號(hào)
  a2.append(sheet.row_values(j,1,2))
  b2.append(sheet.row_values(j,2,3))
 for n in range(13):         #將1班學(xué)號(hào)與姓名寫(xiě)入新建的表格中,并寫(xiě)在第1頁(yè).1班人數(shù)為13人
  ws1.write(n,0,a1[n][0])
  ws1.write(n,1,b1[n][0])
 for m in range(19):         #將2班學(xué)號(hào)與姓名寫(xiě)入新建的表格中,并寫(xiě)在第2頁(yè).2班人數(shù)為19人
  ws2.write(m,0,a2[m][0])
  ws2.write(m,1,b2[m][0])
 for q in range(13):         #對(duì)1班所有人的成績(jī)進(jìn)行隨機(jī)抽取數(shù)據(jù)
  ran=random.randint(60,91)      #分?jǐn)?shù)為60-90之間
  if ran<=70:
    ws1.write(q,2,'及格({0})'.format(ran))  #以下表示在各分?jǐn)?shù)段的等級(jí)
  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):         #對(duì)2班所有人的成績(jī)進(jìn)行隨機(jī)抽取數(shù)據(jù)
  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資環(huán)1,2班地理信息系統(tǒng)實(shí)習(xí)成績(jī).xls')            #將新建的表格保存為'15資環(huán)1,2班地理信息系統(tǒng)實(shí)習(xí)成績(jī).xls'文件 

結(jié)果如下:


總結(jié)

以上所述是小編給大家介紹的基于python實(shí)現(xiàn)在excel中讀取與生成隨機(jī)數(shù)寫(xiě)入excel中,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 在python中的socket模塊使用代理實(shí)例

    在python中的socket模塊使用代理實(shí)例

    這篇文章主要介紹了在python中的socket模塊使用代理實(shí)例,調(diào)用socks.setdefaultproxy即可實(shí)現(xiàn),需要的朋友可以參考下
    2014-05-05
  • 使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程

    使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程

    小編最近在自學(xué)python,在學(xué)習(xí)過(guò)程中有好多意向不到的收獲,真的很開(kāi)心,今天重點(diǎn)給大家分享使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程,包括安裝環(huán)境搭建及一些注意事項(xiàng),感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Pycharm學(xué)習(xí)教程(7)虛擬機(jī)VM的配置教程

    Pycharm學(xué)習(xí)教程(7)虛擬機(jī)VM的配置教程

    這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第七篇,Python快捷鍵相關(guān)設(shè)置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 通過(guò)Python實(shí)現(xiàn)在Word中添加和刪除書(shū)簽的操作

    通過(guò)Python實(shí)現(xiàn)在Word中添加和刪除書(shū)簽的操作

    在Word中,書(shū)簽功能是一個(gè)非常實(shí)用的工具,它允許用戶(hù)快速定位到文檔中的特定位置,無(wú)論是進(jìn)行文檔審閱、編輯還是查找特定信息,書(shū)簽都能提供極大的便利,下面將詳細(xì)介紹如何通過(guò)Python在Word文檔中添加和刪除書(shū)簽,需要的朋友可以參考下
    2024-09-09
  • Python中flatten( )函數(shù)及函數(shù)用法詳解

    Python中flatten( )函數(shù)及函數(shù)用法詳解

    flatten是numpy.ndarray.flatten的一個(gè)函數(shù),即返回一個(gè)一維數(shù)組。這篇文章主要介紹了Python中flatten( )函數(shù),需要的朋友可以參考下
    2018-11-11
  • Python+Matplotlib繪制重疊柱狀圖

    Python+Matplotlib繪制重疊柱狀圖

    重疊柱狀圖?(Overlapped?Bar)?是一種比較圖,可以將兩個(gè)柱狀圖疊加在一起,顯示兩個(gè)相關(guān)變量之間的差異,所以本文就來(lái)用Matplotlib繪制一個(gè)簡(jiǎn)單的重疊柱狀圖吧
    2023-06-06
  • python 刪除指定時(shí)間間隔之前的文件實(shí)例

    python 刪除指定時(shí)間間隔之前的文件實(shí)例

    下面小編就為大家分享一篇python 刪除指定時(shí)間間隔之前的文件實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python munch庫(kù)的使用解析

    python munch庫(kù)的使用解析

    munch是Bunch包的分支,提供類(lèi)似的功能。99%的工作都是由他完成的,而前叉的創(chuàng)建主要是因?yàn)閷?duì)原始代碼的修復(fù)和維護(hù)缺乏響應(yīng)能力。Munch是支持屬性樣式訪問(wèn)的字典,本文將講解munch庫(kù)的使用
    2021-05-05
  • Python中創(chuàng)建表格詳細(xì)過(guò)程

    Python中創(chuàng)建表格詳細(xì)過(guò)程

    這篇文章主要介紹了Python中創(chuàng)建表格,在python中使用tabulate庫(kù)來(lái)創(chuàng)建表格,并針對(duì)輸出形式進(jìn)行不斷改進(jìn)來(lái)美化輸出效果,并給出了代碼示例。需要的小伙伴可以參考一下
    2022-02-02
  • Python在Windows和在Linux下調(diào)用動(dòng)態(tài)鏈接庫(kù)的教程

    Python在Windows和在Linux下調(diào)用動(dòng)態(tài)鏈接庫(kù)的教程

    這篇文章主要介紹了Python在Windows和在Linux下調(diào)用動(dòng)態(tài)鏈接庫(kù)的教程,在進(jìn)行Python的CS端編程時(shí)經(jīng)常需要用到,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

北碚区| 永济市| 普陀区| 乌什县| 镇康县| 当雄县| 本溪| 安康市| 武威市| 崇左市| 濮阳县| 建平县| 阿克陶县| 孟州市| 和龙市| 皋兰县| 汝阳县| 柘城县| 南和县| 三台县| 闵行区| 成都市| 平定县| 祁东县| 体育| 武隆县| 四平市| 梁平县| 丰宁| 浦城县| 扎囊县| 惠来县| 博兴县| 慈溪市| 合江县| 阿图什市| 穆棱市| 正安县| 怀仁县| 永定县| 夏津县|