阅读前提:此篇笔记主为个人校内学习笔记,各位可以选择性参考,以下内容中所提文件素材(结果部分会略写)概览就好,以代码运用为中心。
一、Excel文件的读写
1、第三方库模块的安装(读取:xlrd,写入:xlwt)
2、示例1:读取Excel文件内容,将结果保持以列表中
操作步骤:
(1)导入模块xlrd
(2)打开工作簿Book
(3)指定工作簿中的表单Sheet
(4)根据行列序号读取内容
-
读取Stu_pack里面的school.xls文件并以列表保存
#(1)导入模块xlrd import xlrd #(2)打开工作簿Book wb = xlrd.open_workbook('../Stu_pack/school.xls','rt') #创建打开文件(工作薄)的对象wb #(3)指定工作簿中的表单Sheet sheet = wb.sheet_by_index(0) #创建索引表单的对象sheet #(4)根据行列序号读取内容 schools = [] #定义一个二维列表school for row in range(sheet.nrows): school = [] #定义一个一维列表school,存放一行的单元格内容 for col in range(sheet.ncols): content = sheet.cell_value(row,col) #获取单元格的内容并保存在变量content内 school.append(content) #将内容追加到一维列表school买一行里面 schools.append(school) #将内容追加到二维列表里面 #只读取前10的信息: i=1 for school in schools: if i<12: print(school) i = i+1
运行结果为:
['招生单位代码', '招生单位名称', '所在省份', '是否985', '是否211', '是否自主划线', '学校类型'] ['10001', '北京大学', '北京市', '是', '是', '是', '综合类'] ['10002', '中国人民大学', '北京市', '是', '是', '是', '综合类'] ['10003', '清华大学', '北京市', '是', '是', '是', '理工类'] ['10004', '北京交通大学', '北京市', '否', '是', '否', '理工类'] ['10005', '北京工业大学', '北京市', '否', '是', '否', '理工类'] ['10006', '北京航空航天大学', '北京市', '是', '是', '是', '理工类'] ['10007', '北京理工大学', '北京市', '是', '是', '是', '理工类'] ['10008', '北京科技大学', '北京市', '否', '是', '否', '理工类'] ['10009', '北方工业大学', '北京市', '否', '否', '否', '理工类'] ['10010', '北京化工大学', '北京市', '否', '是', '否', '理工类']
二、Excel文件的写入操作步骤:
(1)导入模块:xlwt
(2)构造工作薄:Workbook
(3)为工作薄添加表单:Worksheet
(4)根据行列序号写入内容
(5)保存文件
-
实例2:将实例1读取的Excel文件内容,写入到另一个Excel中,对学校所在省份进行进行简单的判断,第一行合并单元格显示标题。
#(1)导入模块:xlwt
import xlrd
import xlwt
#(2)读取文件内容
def read_excel(file_name):
wb = xlrd.open_workbook(file_name)
sheet = wb.sheet_by_index(0)
schools = [] #定义一个二维列表school
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(schools):
#(2)构造工作薄:Workbook并创建对象wb
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
wb.save('../R&Q_pic/上海市高校信息表.xls')
#调用函数
schools = read_excel('../Stu_pack/school.xls')
write_excel(schools)
schools = read_excel('../R&Q_pic/上海市高校信息表.xls')
for school in schools:
print(school)
运行结果为:(所在省份为上海市的所有高校信息)
补充若只取前9所高校信息,则代码为:
schools = read_excel('../R&Q_pic/上海市高校信息表.xls')
i = 1
for school in schools:
if i<12:
print(school)
i = i+1
以下是一些需要用到的第三方库判断以及安装代码:
pip install xlwt
pip install jieba
pip install wordcloud
pip show wordcloud