一、Excel文件的读取与写入
1、读取操作步骤:
(1)导入模块xlrd
(2)打开工作簿Book
(3)指定工作薄中的表单Sheet
(4)根据行列序号读取内容
实例一:
#实例一:读取Stu_pack中的Excel文件内容school.xls,将结果保存在以列表中
#(1)导入模块xlrd
import xlrd
# (2)打开工作簿Book
wb = xlrd.open_workbook('../Stu_pack/school.xls')
# (3)指定工作薄中的表单Sheet
sheet=wb.sheet_by_index(0)
# (4)根据行列序号读取内容
schools=[] #定义一个二维列表schools
for row in range(sheet.nrows):
school =[] #定义一个一维列表school
for col in range(sheet.ncols):
content = sheet.cell_value(row,col)
school.append(content)
schools.append(school)
#只读取前十的信息:
i=0
for school in schools:
if i<12:
print(school)
i =i+1
输出:
['招生单位代码', '招生单位名称', '所在省份', '是否985', '是否211', '是否自主划线', '学校类型']
['10001', '北京大学', '北京市', '是', '是', '是', '综合类']
['10002', '中国人民大学', '北京市', '是', '是', '是', '综合类']
['10003', '清华大学', '北京市', '是', '是', '是', '理工类']
['10004', '北京交通大学', '北京市', '否', '是', '否', '理工类']
['10005', '北京工业大学', '北京市', '否', '是', '否', '理工类']
['10006', '北京航空航天大学', '北京市', '是', '是', '是', '理工类']
['10007', '北京理工大学', '北京市', '是', '是', '是', '理工类']
['10008', '北京科技大学', '北京市', '否', '是', '否', '理工类']
['10009', '北方工业大学', '北京市', '否', '否', '否', '理工类']
['10010', '北京化工大学', '北京市', '否', '是', '否', '理工类']
['10011', '北京工商大学', '北京市', '否', '否', '否', '']
2、Excel文件的写入操作步骤:
(1)导入模块:xlwt
(2)构造工作薄:Workbook
(3)为工作薄添加工作表:Worksheet
(4)根据行列序号写入内容
(5)保存文件
示例二:将示例一读取的excel文件内容,写入到另一个Excel中并保存到R&Q_pic文件夹中,对学校所在省份进行简单判断。第一行合并单元格显示标题
#(1)导入模块:xlwt
import xlwt
import xlrd
#(2)读取文件内容
def read_excel(file_name):
wb = xlrd.open_workbook(file_name)
sheet=wb.sheet_by_index(0)
schools=[] #定义一个二维列表schools
for row in range(sheet.nrows):
school =[] #定义一个一维列表school
for col in range(sheet.ncols):
content = sheet.cell_value(row,col)
school.append(content)
schools.append(school)
return schools
#(3)写入文件内容
def write_excel(school):
#构造工作薄:Workbook并创建对象wb
wb = xlwt.Workbook(encoding ='utf-8')
#为工作薄添加工作表:Worksheet
sheet=wb.add_sheet('上海市高校信息表')
#根据行列序号写入内容
sheet.write_merge(0,0,0,6,'上海市高校信息表')#合并单元格写入表头
for col in range(7): #遍历写入工作表的列表名称(列表字段)
sheet.write(1,col,schools[0][col])
row_num =2
for school in schools:
if school[2]=='上海市':
for col in range(7):
sheet.write(row_num,col,school[col])
row_num =row_num+1 #进行自加1 跳出内循环再加一
wb.save('../R&Q_pic/上海市高校信息表.xls')
#调用函数
school_list= read_excel('../Stu_pack/school.xls')
write_excel(schools)
schools=read_excel('../R&Q_pic/上海市高校信息表.xls')
for school in schools:
print(school)
输出:
['上海市高校信息表', '', '', '', '', '', '']
['招生单位代码', '招生单位名称', '所在省份', '是否985', '是否211', '是否自主划线', '学校类型']
['10246', '复旦大学', '上海市', '是', '是', '是', '综合类']
['10247', '同济大学', '上海市', '是', '是', '是', '理工类']
['10248', '上海交通大学', '上海市', '是', '是', '是', '综合类']
['10251', '华东理工大学', '上海市', '否', '是', '否', '理工类']
['10252', '上海理工大学', '上海市', '否', '否', '否', '理工类']
['10254', '上海海事大学', '上海市', '否', '否', '否', '理工类']
['10255', '东华大学', '上海市', '否', '是', '否', '理工类']
['10256', '上海电力学院', '上海市', '否', '否', '否', '理工类']
['10259', '上海应用技术大学', '上海市', '否', '否', '否', '理工类']
['10264', '上海海洋大学', '上海市', '否', '否', '否', '农林类']
['10268', '上海中医药大学', '上海市', '否', '否', '否', '医药类']
['10269', '华东师范大学', '上海市', '是', '是', '否', '师范类']
['10270', '上海师范大学', '上海市', '否', '否', '否', '师范类']
['10271', '上海外国语大学', '上海市', '否', '是', '否', '语言类']
['10272', '上海财经大学', '上海市', '否', '是', '否', '财经类']
['10273', '上海对外经贸大学', '上海市', '否', '否', '否', '']
['10274', '上海海关学院', '上海市', '否', '否', '否', '']
['10276', '华东政法大学', '上海市', '否', '否', '否', '政法类']
['10277', '上海体育学院', '上海市', '否', '否', '否', '体育类']
['10278', '上海音乐学院', '上海市', '否', '否', '否', '艺术类']
['10279', '上海戏剧学院', '上海市', '否', '否', '否', '艺术类']
['10280', '上海大学', '上海市', '否', '是', '否', '']
['10856', '上海工程技术大学', '上海市', '否', '否', '否', '理工类']
['11047', '上海立信会计金融学院', '上海市', '否', '否', '否', '']
['11458', '上海电机学院', '上海市', '否', '否', '否', '']
['11835', '上海政法学院', '上海市', '否', '否', '否', '']
['12044', '上海第二工业大学', '上海市', '否', '否', '否', '']
['80402', '上海国家会计学院', '上海市', '否', '否', '否', '']
['82707', '上海材料研究所', '上海市', '否', '否', '否', '']
['82717', '上海发电设备成套设计研究院', '上海市', '否', '否', '否', '理工类']
['82718', '上海内燃机研究所', '上海市', '否', '否', '否', '']
['82805', '上海核工程研究设计院', '上海市', '否', '否', '否', '']
['82937', '中国航空研究院640所', '上海市', '否', '否', '否', '']
['83009', '华东计算技术研究所', '上海市', '否', '否', '否', '']
['83285', '上海航天技术研究院(航天八院)', '上海市', '否', '否', '否', '']
['83502', '上海化工研究院', '上海市', '否', '否', '否', '']
['83901', '上海船舶运输科学研究所', '上海市', '否', '否', '否', '']
['84002', '电信科学技术第一研究所(上海)', '上海市', '否', '否', '否', '']
['84505', '上海生物制品研究所', '上海市', '否', '否', '否', '']
['85901', '中国医药工业研究总院', '上海市', '否', '否', '否', '医药类']
['86206', '中国船舶及海洋工程设计研究院', '上海市', '否', '否', '否', '']
['86207', '上海船舶设备研究所', '上海市', '否', '否', '否', '']
['86208', '上海船用柴油机研究所', '上海市', '否', '否', '否', '']
['86219', '上海船舶电子设备研究所', '上海市', '否', '否', '否', '']
['87901', '上海市计算技术研究所', '上海市', '否', '否', '否', '']
['87902', '上海国际问题研究院', '上海市', '否', '否', '否', '']
['87903', '上海社会科学院', '上海市', '否', '否', '否', '']
['89631', '中共上海市委党校', '上海市', '否', '否', '否', '']
['90030', '第二军医大学', '上海市', '否', '是', '否', '']
只输出前十行:
schools=read_excel('../R&Q_pic/上海市高校信息表.xls')
i=0
for school in schools:
if i<12:
print(school)
i =i+1
输出:
['上海市高校信息表', '', '', '', '', '', '']
['招生单位代码', '招生单位名称', '所在省份', '是否985', '是否211', '是否自主划线', '学校类型']
['10246', '复旦大学', '上海市', '是', '是', '是', '综合类']
['10247', '同济大学', '上海市', '是', '是', '是', '理工类']
['10248', '上海交通大学', '上海市', '是', '是', '是', '综合类']
['10251', '华东理工大学', '上海市', '否', '是', '否', '理工类']
['10252', '上海理工大学', '上海市', '否', '否', '否', '理工类']
['10254', '上海海事大学', '上海市', '否', '否', '否', '理工类']
['10255', '东华大学', '上海市', '否', '是', '否', '理工类']
['10256', '上海电力学院', '上海市', '否', '否', '否', '理工类']
['10259', '上海应用技术大学', '上海市', '否', '否', '否', '理工类']
['10264', '上海海洋大学', '上海市', '否', '否', '否', '农林类']