一,Excel文件的读取与输入
(1)导入模块xlrd
(2)打开工作簿
(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 = [] #定义一个二维列表schools
for row in range(sheet.nrows): #以文件school的行遍历
school = [] #定义一个一维列表
for col in range(sheet.ncols):#以文件school的列遍历
content = sheet.cell_value(row,col)#读取单元格内容并保存在变量Content里面
school.append(content) #将从单元格读取的数据内容追加到一维列表school里面
schools.append(school)#将读取的一行内容追加到二维列表schools里面
for school in schools: #读取文件的内容
print(school)
二、Excel文件的写入操作步骤:
(1)导入模块:xlwt
(2)构造工作簿:Workbook
(3)为工作簿添加表单
(4)根据行列号写入内容
(5)保存文件
#实例二:将实例一读取的Excel文件内容,写到另一个Excel中,对学校所在省份进行简单判断,将上海市高校信息写入到新的文件里,文件名为“上海市高校信息表.xls”。第一行合并单元格显示标题。
#(1)导入模块:xlwt
import xlwt #第三方库,其方法之前必须要添加其库名
import xlrd
#(2)构造工作簿
def read_excel(file_name): #定义读取文件函数read_excel()
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):#以文件school的列遍历
content = sheet.cell_value(row,col)#读取单元格内容并保存在变量Content里面
school.append(content) #将从单元格读取的数据内容追加到一维列表school里面
schools.append(school)#将读取的一行内容追加到二维列表schools里面
return schools #返回二维列表内容
#(3)写入文件内容
def write_excel(schools): #定义写入文件函数
wb = xlwt.Workbook(encoding = 'utf-8')#创建写入文件的对象
sheet = wb.add_sheet('上海市高校信息表') #创建一个表单
sheet.write_merge(0,0,0,6,'上海市高校信息表') #写表标题并合并单元格(A1:G1)
for col in range(7): #写列表名称
sheet.write(1,col,schools[0][col])#从第二行第一列开始写内容school[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 #将行数内容填写完自动增加一行
wb.save('../R&Q_pic/上海市高校信息表.xls')#(4)保存文件内容
#(5)函数的调用
school_list = read_excel('../Stu_pack/school.xls') #调用读取函数创建对象school_list,将素材里的文件Stu_pack里面的文件school.xls作为实参传递给形参
write_excel(school_list) #调用写入函数,将读取的数据作为实参传递给形参写入文件“上海高校信息表”到指定的文件夹保存
school_list = read_excel('../R&Q_pic/上海市高校信息表.xls')
i=0
for school in school_list:
if i<12:
print(school)
i+=1