python操作excel

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41124528/article/details/81810158

根据需求提取points大于5的数据,并进行倒序。插入到一个新的工作表中。如下所示的Excel表格数据,请编写python代码筛选出Points大于5的数据,并按Points进行排序后输出如图2所示的Excel文件结果

图一

图二

#操作EXCEL提取出points大于5的数,并倒序插入
 #导入模块
import xlrd
import xlwt


 #打开工作簿
wbk = xlrd.open_workbook('rank.xlsx')


 #获取工作表
mysheet =wbk.sheet_by_index(0)


 #计算行数
nrows = mysheet.nrows
 # print(nrows)


 #建立一个空列表用来将满足条件的行值放入lt中
lt =[]

#通过遍历的方法找到每一行的值
for i in range(nrows):
    myrowvalues = mysheet.row_values(i)
    # print(type(myrowvalues))
    # i等于0是为了将第一行也放进去,因为他是表头不是数字不能进行比较。同时取行值的第三个值与5.0进行比较。将符合要求的数据添加到空列表中
    if i is 0 or myrowvalues[2]>5.0:
        lt.append(myrowvalues)
 # print(lt)


 #将第一行值提出来,因为他是文字不能进行比较。同时作为标题
touname = lt[0]
 # print(touname)


 #通过索引将其他的行值提取出来并放置到表量名rows中
rows = lt[1:]
 # print(rows)


 #建立空列表。通过遍历,通过索引将行值的最后一位提取出来,放置在points中
points =[]
for j in rows:
    points.append(j[2])
 # print(points)


 #进行排序,reverse=True表示执行倒序,reverse=False 表示不允许倒序,即正序。
points.sort(reverse=True)
 # print(points)


 #建立空列表,将刚才的标题放进去
aa=[]
aa.append(touname)
 # print(aa)


 #遍历,将行值按照排序的顺序进行放入,第一个遍历为遍历排序的数据,第二个遍历为,提取行值。通过if语句和索引将行值中的第三个数字和排序数字进行匹配,并安装数字排序的顺序将行值插入到列表aa中。
for i in points:
    for k in rows:
        if i== k[2]:
            aa.append(k)
 # print(aa)


 #建立一个新工作簿
nwbk = xlwt.Workbook()

#建立一个新工作表,并命名
nsheet = nwbk.add_sheet('sheet1')
 #求出行数和列数,并写入数据。ii表示行数,jj表示列数。通过行数和列数对每一个单元格进行数据插入。
for ii in range(len(aa)):
    for jj in range(len(touname)):
        nsheet.write(ii,jj,aa[ii][jj])
nwbk.save('rank.xlsx')

展开阅读全文

没有更多推荐了,返回首页