Python练习篇16-Excel表格读写操作

本文介绍如何读写操作Excel表格
首先我们需要下载第三方包:xlwt和xlrd(下载方法:打开cmd,输入pip install 包名),这两个模块很强的,xlwt负责写入Excel,xlrd负责读出Excel。
下面我们先介绍xlwt写入Excel操作
代码如下:


import xlwt 	#首先导入xlwt模块


#自定义字体样式,根据自己需要调整,也可以不要
def set_style():
    style = xlwt.XFStyle() #初始化样式
    font = xlwt.Font()  #为样式创建字体
    font.name = 'Times New Roman'
    font.bold = True    #黑体
    font.underline = True   #下划线
    font.height = 220   #大小
    font.italic = True  #斜字体
    style.font = font   #设定样式
    return style

#写入Excel参数对应 行,列,值
def write_excel():
    workbook = xlwt.Workbook(encoding='utf-8')      #创建一个workbook,设置编码
    worksheet = workbook.add_sheet('学生名单',
    cell_overwrite_ok=True)      #创建一个worksheet,设置sheet名称

    #写入第一行title
    row = ['编号', '班级', '名字', '成绩']  
    for i in range(0, len(row)):
        worksheet.write(0, i, row[i], set_style())

    #写入第一列编号
    # column = []   #由于列为数字,因此可不设置
    for i in range(8):  #编号8代表列1-8
        worksheet.write(i+1, 0, i+1)

    #写入班级
    clas = '二班'
    for i in range(5):
        worksheet.write(i+1, 1, clas)

    #写入姓名
    name = ['小明', '小红', '小王', '张三', '李四']
    for i in range(0, len(name)):
        worksheet.write(i+1, 2, name[i])

    #写入成绩
    grade = [90, 92, 94, 96, 98]
    for i in range(0, len(grade)):
        worksheet.write(i+1, 3, grade[i])

    #合并行单单元格
    worksheet.write_merge(6, 6, 1, 3, '一班王五')

    #合并列单元格
    worksheet.write_merge(7, 8, 1, 1, '一班')


    try:
        # 保存
        workbook.save('Excel_test.xls')

    except Exception as e:
        print(e)
        print("文件已打开,访问被拒绝,请先关闭!")


write_excel()	#执行

执行以后,Excel表格已建好,图示如下:
在这里插入图片描述

接着介绍xlrd读出Excel表格内容
代码如下:


import xlrd 	#首先导入xlrd模块

def read_excel():
    workbook = xlrd.open_workbook('Excel_test.xls')

    #获取所有sheet名称
    print(workbook.sheet_names())

    #获取表格sheet内容
    readbook = workbook.sheet_by_index(0) #0表示索引第一个sheet
    # readbook = workbook.sheet_by_name('学生名单')   #也可通过sheet名称获取


    #获取sheet名称,列数和行数
    print('sheet名称:%s\n表格列数:%d\n表格行数:%d'
          % (readbook.name, readbook.nrows, readbook.ncols))

    #row_values()获取行内容
    print(readbook.row_values(1))  #1表示第二行内容

    #col_values()获取列内容
    print(readbook.col_values(2))  #2表示第三列内容


    # 三种获取表格第三行第三列数据
    print(readbook.cell(2, 2).value)
    print(readbook.cell_value(2, 2))
    print(readbook.row(2)[2].value)

    #获取数据类型
    print(type(readbook.cell(1, 0)))


read_excel()	#执行
	

执行结果如下:

['学生名单']
sheet名称:学生名单
表格列数:9
表格行数:4
[1.0, '二班', '小明', 90.0]
['名字', '小明', '小红', '小王', '张三', '李四', '', '', '']
小红
小红
小红
<class 'xlrd.sheet.Cell'>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值