初学者第九课:Excel文件的读取与写入(Ⅰ)

 一、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', '上海应用技术大学', '上海市', '否', '否', '否', '理工类']
​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值