码迷,mamicode.com
首页 > 编程语言 > 详细

Python_Excel文件操作

时间:2017-06-14 21:05:54      阅读:668      评论:0      收藏:0      [点我收藏+]

标签:ict   写入   middle   min   []   格式   tuple   xls   ksh   

  1 ‘‘‘
  2 使用xlrd模块写入Excel文件
  3 ‘‘‘
  4 import xlrd
  5 book=xlrd.open_workbook(r/Users/c2apple/Desktop/纪录/测试报告/张涛文件盘/骆洪文模版/彩屏带杨升/ZD-QR-730114 彩屏软件测试报告 00版.xlsx)#打开Excel文件
  6 sheet1=book.sheet_by_name(First)  #打开worksheet
  7 row0=sheet1.row(0)  #获取第0行
  8 print(row0[0])
  9 print(row0[0].value)    #查看单元格中的内容
 10 
 11 #使用扩展库openpyxl读取Excel2007及更高版本的Excel文件
 12 import openpyxl
 13 from openpyxl import Workbook
 14 fn=r/Users/c2apple/Desktop/test.xlsx    #文件名
 15 wb=Workbook()   #创建工作簿
 16 ws=wb.create_sheet(title=你好,世界)   #单元格赋值
 17 ws[A1]=这是第一个单元格 #单元格赋值
 18 ws[B1]=3.1415926
 19 wb.save(fn)     #保存Excel文件
 20 wb=openpyxl.load_workbook(fn)   #打开已有的Excel文件
 21 ws=wb.worksheets[1] #打开指定索引的工作表
 22 print(ws[A1].value)  #读取并输出指定单元格的值
 23 ws.append([1,2,3,4,5])  #添加一行数据
 24 ws.merge_cells(F2:F3) #合并单元格
 25 ws[F2]="=sum(A2:E2)"  #写入公式
 26 for r in range(10,15):
 27     for c in range(3,8):
 28         _=ws.cell(row=r,column=c,value=r*c) #写入单元格数据
 29 wb.save(fn)
 30 
 31 ‘‘‘
 32     假设某学校所有课程每学期允许多次考试,学生可随时参加考试,系统自动将每次成绩
 33 添加到Excel文件(包含3列,姓名、课程、成绩)中,现期末要求统计所有学生每门课程的最高成绩。
 34 下面代码首先模拟生成随机成绩数据,然后进行统计分析.
 35 ‘‘‘
 36 import openpyxl
 37 from openpyxl import Workbook
 38 import random
 39 
 40 #随机生成数据
 41 def generatetRandomInformation(filename):
 42     workbook=Workbook()
 43     worksheett=workbook.worksheets[0]
 44     worksheett.append([姓名,课程,成绩])
 45     #中文名字中的第一、第二、第三个字
 46     first=tuple(赵钱孙李)
 47     middle=tuple(伟昀琛东)
 48     last=tuple(坤艳志)
 49     #课程名称
 50     subject=(语文,数学,英语)
 51     #随机生成200个数据
 52     for i in range(200):
 53         line=[]
 54         r=random.randint(1,100)
 55         name=random.choice(first)
 56         #按一定概率生成只有两个字的中文名字
 57         if i>50:
 58             name=name+random.choice(middle)
 59         name=name+random.choice(last)
 60         #依次生成姓名、课程名、和成绩
 61         line.append(name)
 62         line.append(random.choice(subject))
 63         line.append(random.randint(0,100))
 64         worksheett.append(line)
 65    #保存数九,生成Excel 2007格式的文件
 66     workbook.save(filename)
 67 
 68 def getResult(oldfile, newfile):
 69     #用于存放结果数据的字典
 70     result = dict()
 71 
 72     #打开原始数据
 73     workbook = openpyxl.load_workbook(oldfile)
 74     worksheet = workbook.worksheets[0]
 75 
 76     #遍历原始数据
 77     for row in worksheet.rows:
 78         if row[0].value == 姓名:
 79             continue
 80         #姓名,课程名称,本次成绩
 81         name, subject, grade = row[0].value, row[1].value, row[2].value
 82 
 83         #获取当前姓名对应的课程名称和成绩信息
 84         #如果result字典中不包含,则返回空字典
 85         t = result.get(name, {})
 86         #获取当前学生当前课程的成绩,若不存在,返回0
 87         f = t.get(subject, 0)
 88         #只保留该学生该课程的最高成绩
 89         if grade > f:
 90             t[subject] = grade
 91             result[name] = t
 92 
 93     workbook1 = Workbook()
 94     worksheet1 = workbook1.worksheets[0]
 95     worksheet1.append([姓名,课程,成绩])
 96 
 97     #将result字典中的结果数据写入Excel文件
 98     for name, t in result.items():
 99         print(name,t)
100         for subject, grade in t.items():
101             worksheet1.append([name, subject, grade])
102 
103     workbook1.save(newfile)
104 
105 if __name__==__main__:
106     oldfile=rtest1.xlsx
107     newfile=rresultt.xlsx
108     generatetRandomInformation(oldfile)
109     getResult(oldfile,newfile)

 

Python_Excel文件操作

标签:ict   写入   middle   min   []   格式   tuple   xls   ksh   

原文地址:http://www.cnblogs.com/cmnz/p/7010800.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!