Python_Excel文件操作
'''
使用xlrd模块写入Excel文件
'''
import xlrd
book=xlrd.open_workbook(r'/Users/c2apple/Desktop/纪录/测试报告/张涛文件盘/骆洪文模版/彩屏带杨升/ZD-QR-730114 彩屏软件测试报告 00版.xlsx')#打开Excel文件
sheet1=book.sheet_by_name('First') #打开worksheet
row0=sheet1.row(0) #获取第0行
print(row0[0])
print(row0[0].value) #查看单元格中的内容 #使用扩展库openpyxl读取Excel2007及更高版本的Excel文件
import openpyxl
from openpyxl import Workbook
fn=r'/Users/c2apple/Desktop/test.xlsx' #文件名
wb=Workbook() #创建工作簿
ws=wb.create_sheet(title='你好,世界') #单元格赋值
ws['A1']='这是第一个单元格' #单元格赋值
ws['B1']=3.1415926
wb.save(fn) #保存Excel文件
wb=openpyxl.load_workbook(fn) #打开已有的Excel文件
ws=wb.worksheets[1] #打开指定索引的工作表
print(ws['A1'].value) #读取并输出指定单元格的值
ws.append([1,2,3,4,5]) #添加一行数据
ws.merge_cells('F2:F3') #合并单元格
ws['F2']="=sum(A2:E2)" #写入公式
for r in range(10,15):
for c in range(3,8):
_=ws.cell(row=r,column=c,value=r*c) #写入单元格数据
wb.save(fn) '''
假设某学校所有课程每学期允许多次考试,学生可随时参加考试,系统自动将每次成绩
添加到Excel文件(包含3列,姓名、课程、成绩)中,现期末要求统计所有学生每门课程的最高成绩。
下面代码首先模拟生成随机成绩数据,然后进行统计分析.
'''
import openpyxl
from openpyxl import Workbook
import random #随机生成数据
def generatetRandomInformation(filename):
workbook=Workbook()
worksheett=workbook.worksheets[0]
worksheett.append(['姓名','课程','成绩'])
#中文名字中的第一、第二、第三个字
first=tuple('赵钱孙李')
middle=tuple('伟昀琛东')
last=tuple('坤艳志')
#课程名称
subject=('语文','数学','英语')
#随机生成200个数据
for i in range(200):
line=[]
r=random.randint(1,100)
name=random.choice(first)
#按一定概率生成只有两个字的中文名字
if i>50:
name=name+random.choice(middle)
name=name+random.choice(last)
#依次生成姓名、课程名、和成绩
line.append(name)
line.append(random.choice(subject))
line.append(random.randint(0,100))
worksheett.append(line)
#保存数九,生成Excel 2007格式的文件
workbook.save(filename) def getResult(oldfile, newfile):
#用于存放结果数据的字典
result = dict() #打开原始数据
workbook = openpyxl.load_workbook(oldfile)
worksheet = workbook.worksheets[0] #遍历原始数据
for row in worksheet.rows:
if row[0].value == '姓名':
continue
#姓名,课程名称,本次成绩
name, subject, grade = row[0].value, row[1].value, row[2].value #获取当前姓名对应的课程名称和成绩信息
#如果result字典中不包含,则返回空字典
t = result.get(name, {})
#获取当前学生当前课程的成绩,若不存在,返回0
f = t.get(subject, 0)
#只保留该学生该课程的最高成绩
if grade > f:
t[subject] = grade
result[name] = t workbook1 = Workbook()
worksheet1 = workbook1.worksheets[0]
worksheet1.append(['姓名','课程','成绩']) #将result字典中的结果数据写入Excel文件
for name, t in result.items():
print(name,t)
for subject, grade in t.items():
worksheet1.append([name, subject, grade]) workbook1.save(newfile) if __name__=='__main__':
oldfile=r'test1.xlsx'
newfile=r'resultt.xlsx'
generatetRandomInformation(oldfile)
getResult(oldfile,newfile)
Python_Excel文件操作的更多相关文章
- day03深浅拷贝、文件操作和函数初识
一.赋值.浅拷贝与深拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法, ...
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)
========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...
- SQL Server附加数据库报错:无法打开物理文件,操作系统错误5
问题描述: 附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
- Linux文件操作的主要接口API及相关细节
操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...
- C语言的fopen函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, c ...
随机推荐
- Android View底层到底是怎么绘制的
Android绘制链图: 网上很多讲Android view的绘制流程往往只讲到了Measure - Layout - Draw. 但是,这只是一个大体的流程,而我们需要探讨的是Android在我们 ...
- Python学习笔记 - 高阶函数
高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用该函数用以下 ...
- R-- Dplyr包
Dplyr 包应用 1. 筛选 filter() 按照给定的逻辑判断选择出合适的数据子集 fliter(data,year==2015,month==1) 支持对同一对象的任意条件组合 fliter( ...
- ERP-非财务人员的财务培训教(四)------公司/部门的成本与费用控制
一.损益表.资产负责表 二.成本分类 ----成本习性 三.成本核算模式 四.成本控制原则 第四部分 公司/部门的成本与费用控制 一.损益表.资产负责表 项目 Items 产品销售收入 Sal ...
- Activity之间传递大数据问题
Android开发人员都知道,Intent适用于在不同的Activity之间传递数据,包括参数.字符串.以及序列化的对象等.但是笔者所做的项目用到了使用Intent 传递Bitmap图片对象,图片的数 ...
- javascript、ruby和C性能一瞥(3) :上汇编
在博文(1)和(2)里分别用了4中方式写一个素数筛选的算法,分别是javascript in browser.node.js.ruby和c:最终的结果是c最快,node.js其次,js in b虽然也 ...
- javascript语言扩展:可迭代对象(4)
js 1.7中还包含一个数组推导(array comprehension)的特性,如果不在最后介绍它好像显得不怎么完整. 数组推导其实很简单: let a = [x*x for(x in range( ...
- “万能数据库查询分析器” 5.03发布,访问EXCEL将自动为表名前后加上中括弧
"万能数据库查询分析器" 5.03发布,访问EXCEL将自动为表名前后加上中括弧 1 引言 中国本土程序员马根峰推出的个人作品----万能数据库查询 ...
- Mac Finder 里新建文本
Mac Finder 里新建文本 首先吐槽下 Mac 的文件管理 Finder 真的是太弱了,之前没感觉 Windows 的资源管理器多厉害,但是和 Mac 的比起来真是堪称神器啊,果然牛逼与否还的看 ...
- java 深入理解内部类以及之间的调用关系
什么是内部类 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和 ...