一、Excel文件的读取与写入
1、读取操作步骤:
(1)导入模块xlrd
(2)打开工作薄book
(3)根据工作薄中的工作表
(4)根据行列序号读取内容
#(1)导入模块xlrd
import xlrd
#(2)打开工作薄book
wb = xlrd.open_workbook('../Stu_pack/school.xls')
#(3)根据工作薄中的工作表
sheet = wb.sheet_by_index(0)
#(4)根据行列序号读取内容并存放到二维列表里面
schools = [] #定义一个二维列表存放工作表数据
for row in range(sheet.nrows):
school = [] #定义一个一维列表存放每个单元格的数据
for col in range(sheet.ncols):
content = sheet.cell_value(row,col)# 读取每个单元格的数据存放到变量content里面
school.append(content) #将每行的数据追加到一维列表school里面
schools.append(school) #将每行的数据追加到二维列表school里面
#(5)读取二维列表里的数据前十项数据(包括列表名称共十一行):
for school in schools[:11]:
print(school)
import pandas as pd
pd.read_excel('../Stu_pack/school.xls')
二、Excel文件的写入操作步骤
(1)导入模块
(2)构造工作薄
(3)为工作薄添加表单:Worksheet
(4)根据行列序号写入内容
(5)保存文件
示例2:将示例1读取的Excel文件内容,写入到另一个Excel中并保存到文件夹R&Q_pic里面,对学校所在省份进行判断,第一行合并单元格显示标题。
#(1)导入模块xlrd
import xlrd
import xlwt
#(2)打开工作薄book
def read_excel(file_name):
wb = xlrd.open_workbook(file_name)
sheet = wb.sheet_by_index(0)
schools = [] #定义一个二维列表存放工作表数据
for row in range(sheet.nrows):
school = [] #定义一个一维列表存放每个单元格的数据
for col in range(sheet.ncols):
content = sheet.cell_value(row,col)# 读取每个单元格的数据存放到变量content里面
school.append(content) #将每行的数据追加到一维列表school里面
schools.append(school) #将每行的数据追加到二维列表school里面
return schools #返回二维列表数据
#写入文件内容
def write_excel(schools):
#(2)构造工作薄
wb = xlwt.Workbook(encoding = 'utf-8')
#(3)为工作薄添加表单:Worksheet
sheet = wb.add_sheet('上海市高校信息表')
#(4)根据行列序号写入内容
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
#(5)
wb.save('../R&Q_pic/上海市高校信息表.xls')
#调用函数:
schools_list = read_excel('../Stu_pack/school.xls')
write_excel(schools_list)