#示例2:将示例1读取的 Excel 文件内容,写入到另一个Excel中,对学校所在省份进行简单判断。第一行合并单元格显示标题。
前期准备
(1)导入模块:xlwt
import xlrd
import xlwt
(2)读取文件内容
def read_excel(file_name): #定义读取文件函数
wb = xlrd.open_workbook(file_name) #创建读取文件的对象wb
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)
school.append(content)
schools.append(school)
return schools #提供返回值
(3)写入文件内容
def write_excel(schools):
#定义写入文件函数
#(2)构造工作簿:Workbook
wb = xlwt.Workbook(encoding = 'utf-8')
#创建写入文件的对象wb
#(3)为工作簿添加表单:Worksheet
s = wb.add_sheet('上海市高校信息表') #创建一个表单
#(4)根据行列序号写入内容
#添加文本的样式(字体和对齐)
font = xlwt.Font() #字体
font.bold = True
font.height = 400
font.underline = True
font.colour_index = 6
#0:黑,1:白,2:红,3:绿,4:蓝,5:黄,6:紫
align = xlwt.Alignment() #对齐
align.horz = 2
#水平居中 1:左,2:中,3:右
align.vert = 1
#垂直居中 0:上,1:中,2:下
style = xlwt.XFStyle() #样式
style.font = font
style.alignment = align
s.write_merge(0,0,0,6,'上海市高校信息表',style)
#写表标题并合并单元格(A1:A7)
for col in range(7):
#写表列表名称
s.write(1,col,schools[0][col])
#第2行第1列开始写内容school[0][col]
row_num = 2
#从第3行开始写数据
for school in schools:
#一行一行写数据内容
if school[2] == '上海市':
for col in range(7):
s.write(row_num,col,school[col])
row_num = row_num + 1
#(5)保存文件内容
wb.save('../R&Q_pic/上海市高校信息表.xls')
school_list = read_excel('../Stu_pack/wordcloud/school.xls')
#调用读取函数,将素材里的文件school.xls作为实参传递给形参
write_excel(school_list)
#调用写入函数,将读取的数据作为实参传递给形参写入到文件"上海市高校信息表.xls"里保存
schools_list = read_excel('../R&Q_pic/上海市高校信息表.xls')
i=1
for school in schools_list:
if i<13:
print(school)
i+=1
结果如下:
检测是否存在相应库 无则需下载
pip show xlwt 检测xlwt是否存在
pip install xlwt 安装xlwt
一、用pandas读写Excel文件
1、导入第三方库pandas
import pandas as pd #导入第三方库pandas
2、将目标Excel文件读取内容赋值给date
date = pd.read_excel('../Stu_pack/wordcloud/school.xls')
3、检测内容完整
date
内容如图:
拓展——
date.head(11) #读取文件前11项(默认为5项)
date.tail(11) #读取文件后11项(默认为5项)
#请读取所在省份为上海市的数据
date=date[date['所在省份']=='上海市']
#请将下面的数据写入到‘R&Q_pic’文件夹,文件名为‘上海市高校信息.xls’
date.to_excel('../R&Q_pic/上海市高校信息.xls')