python从电子表格随机取出一行数据,并添加一次操作记录。

    xiaoxiao2022-07-05  197

    import xlwt import xlrd from xlutils.copy import copy import random import openpyxl

    #下面为从xls文件读取数据,写入读取记录 def xls_words():    #fn=u'D:/2018熊/伊学专栏/背单词方法/初一单词.xlsx' #两种文件xlrd都可以读,xlwt只能写xls    fn='C:/Users/Administrator/Desktop/sms/1234.xls'    xls=xlrd.open_workbook(filename=fn)#打开电子表格文件    sheet1=xls.sheet_by_index(0)#打开第一个sheet    n=sheet1.nrows#取出总行数    a=sheet1.row_values(0)[0]#xlrd库从0,0开始取值    print(a)    ##sheet1.put_cell(2,4,2,a+1,0)#不能写加文件    #写操作    xls_copy=copy(xls)    sheet_w=xls_copy.get_sheet(0)    words=''    for r in random.sample(range(1,n-1),30):#不重复随机数       #r=random.randint(1,n-1) #产生随机数,第0行标题,末行n-1       words+=sheet1.row_values(r)[0]+'\t'+sheet1.row_values(r)[1]+'\n'       record=sheet1.row_values(r)[2]       sheet_w.write(r,2,record+1)    xls_copy.save(fn)       print(words) 

    #下面为从xlsx电子表格随机取出一行数据,并添加一次操作记录。 def xlsx_words():    #fn=u'D:/2018熊/伊学专栏/背单词方法/初一单词.xlsx'    fn='C:/Users/Administrator/Desktop/sms/12345.xlsx'    #xls=xlrd.open_workbook(filename=fn)#打开电子表格文件    #sheet1=xls.sheet_by_index(0)#打开第一个sheet    #n=sheet1.nrows    xlsx=openpyxl.load_workbook(fn)#打开xlsx文件    sheet1=xlsx.worksheets[0]#打开第一个sheet    n=sheet1.max_row#读取总行数    words=''    for r in random.sample(range(2,n),30):#sample 没有重复数       #r=random.randint(2,n)#产生随机数,第一行标题       #words+=sheet1.row_values(r)[0]+'\t'+sheet1.row_values(r)[1]+'\t'\       #+sheet1.row_values(r)[2]+'\t'+sheet1.row_values(r)[3]+'\n'       words+=sheet1.cell(r,1).value+'\t'+sheet1.cell(r,2).value+'\t'\          +sheet1.cell(r,3).value+'\t'+sheet1.cell(r,4).value+'\n'       record=sheet1.cell(r,5).value #openpyxl库从1,1开始。注意       sheet1.cell(r,5).value=record+1    xlsx.save(fn)       #return words

    xls_words() xlsx_words()

    #import openpyxl ###这个openpyxl不支持xls,么家伙 ##xlsx=openpyxl.load_workbook(fn) ##sheet1=xlsx.worksheets[0] ##n=sheet1.max_row ###取出一行的值很麻烦,生成器 ##a=sheet1.rows#所有行<class 'generator'> ##b=list(a)#转为列表 ##c=b[2]#元组类型#取出第几行 ###不能直接取出,需要下面迭代 ##for i in c: ##    print(i.value) ##a=sheet1.cell(2,5).value #openpyxl库从1,1开始。注意 ##print(type(a)) ##sheet1.cell(2,5).value=a+1 ##xlsx.save(fn)  

    最新回复(0)