一、Excel文件的读取与写入
1、读取操作
读取操作步骤:
(1)导入模块
(2)打开工作簿Book
(3)制定工作簿中的表单Sheet
(4)根据行列序号读取内容
#示例1:读取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)
#示例1:读取Stu——pack中的Excel文件内容school。xls,将结果保存以列表中
安装xlrd
pip install xlrd
#(1)导入模块xlrd
import xlrd
#(2)打开工作簿Book
wb = xlrd.open_workbook('../Stu_pack/school.xls')
#(3)制定工作簿中的工作表Sheet
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)
school.append(content) #将单元格的内容追加到一维列表里
schools.append(school) #将每行的内容追加到二维列表里
#(4)根据行列序号读取内容
i=1
for school in schools:
if i <12:
print(school)
i = i+1
2、结果如下:
['招生单位代码', '招生单位名称', '所在省份', '是否985', '是否211', '是否自主划线', '学校类型']
['10001', '北京大学', '北京市', '是', '是', '是', '综合类']
['10002', '中国人民大学', '北京市', '是', '是', '是', '综合类']
['10003', '清华大学', '北京市', '是', '是', '是', '理工类']
['10004', '北京交通大学', '北京市', '否', '是', '否', '理工类']
['10005', '北京工业大学', '北京市', '否', '是', '否', '理工类']
['10006', '北京航空航天大学', '北京市', '是', '是', '是', '理工类']
['10007', '北京理工大学', '北京市', '是', '是', '是', '理工类']
['10008', '北京科技大学', '北京市', '否', '是', '否', '理工类']
['10009', '北方工业大学', '北京市', '否', '否', '否', '理工类']
['10010', '北京化工大学', '北京市', '否', '是', '否', '理工类']
二、Excel文件的写入操作步骤:
1、导入模块:xlwt
2、读取文件内容
3、制定工作簿中的工作表Sheet
4、根据行列序号读取内容
5、写入文件内容
示例2:将示例1读取的Excel文件内容,写入到另一个Excel中并保存到R&Q_pic文件夹中,对学校所在的省份进行简单判断。第一行合并单元格显示标题
1、导入模块
#1、导入模块:xkwt和xlrd
import xlrd
import xlwt
#需安装第三方库xlwt
pip install xlwt
2、读取文件内容
#2、读取文件内容
def read_excel(file_name):
wb = xlrd.open_workbook(file_name)
3、制定工作簿中的工作表Sheet
#3、制定工作簿中的工作表Sheet
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)
school.append(content) #将单元格的内容追加到一维列表里
schools.append(school) #将每行的内容追加到二维列表里
return schools #返回二维列表值
5、写入文件内容
def write_excel(schools):
#构造工作簿:Workbook
wb = xlwt.Workbook(encoding = 'utf-8')
#为工作簿添加表单:Worksheet
sheet = wb.add_sheet('上海市高校信息表')
#添加文本的样式(字体和对齐)
font = xlwt.Font()
font.bold = True
font.height = 400
font.underline = True
font.colour_index = 6
align = xlwt.Alignment()
align.horz = 2
align.vert = 1
style = xlwt.XFStyle()
style.font = font
style.alignment = align
#根据行列序号写入内容
sheet.write_merge(0,0,0,6,'上海市高校信息表',style)
#合并第一行第一个单元格到第六个单元格表头
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
#当写完一行的单元格之后自动加一行
6、保存文件
#(5)保存文件
wb.save('../R&Q_pic/上海市高校信息表.xls')
7、调用函数
#调用函数
schools = read_excel('../Stu_pack/school.xls')
write_excel(schools)
显示指定文件前十项内容
#请中下面显示‘上海市高校信息表.xls’里面前10项内容(包括表头和列表名称共12行)
wb = xlrd.open_workbook('../R&Q_pic/上海市高校信息表.xls')
#(3)制定工作簿中的工作表Sheet
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)
school.append(content) #将单元格的内容追加到一维列表里
schools.append(school) #将每行的内容追加到二维列表里
#(4)根据行列序号读取内容
i=1
for school in schools:
if i <12:
print(school)
i = i+1
结果如下:
['上海市高校信息表', '', '', '', '', '', '']
['招生单位代码', '招生单位名称', '所在省份', '是否985', '是否211', '是否自主划线', '学校类型']
['10246', '复旦大学', '上海市', '是', '是', '是', '综合类']
['10247', '同济大学', '上海市', '是', '是', '是', '理工类']
['10248', '上海交通大学', '上海市', '是', '是', '是', '综合类']
['10251', '华东理工大学', '上海市', '否', '是', '否', '理工类']
['10252', '上海理工大学', '上海市', '否', '否', '否', '理工类']
['10254', '上海海事大学', '上海市', '否', '否', '否', '理工类']
['10255', '东华大学', '上海市', '否', '是', '否', '理工类']
['10256', '上海电力学院', '上海市', '否', '否', '否', '理工类']
['10259', '上海应用技术大学', '上海市', '否', '否', '否', '理工类']