• excel操作


    一、python操作excel使用xlrd、xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的。这几个模块使用pip安装即可,下面是这几个模块的使用。

    二、xlrd模块,xlrd模块用来读excel,具体用法如下

    第一步打开一个文件,注意文件需要先存在的,不存在的话,是会报错的
    第二步查看文件所有的sheet页名字,获取sheet页,根据sheet页的编号或者名称获取想要的sheet页
    第三步根据sheet页查找整行或者整列的信息、获取指定单元格的数据
    第四步获取sheet页的行数和列数

    1)根据sheet页位置确定sheet页

    import xlrd
    book =xlrd.open_workbook(r'students.xlsx') #不会自动创建,文件需要先存在—才可以打开excel
    print(book.sheet_names()) #获取所有sheet页的名字 ['Sheet1', 'Sheet2', 'Sheet3']
    sheet=book.sheet_by_index(0) #根据sheet页的位置获取sheet页
    print(sheet.row_values(0))#根据行号获取整行的数据 ['编号', '姓名', '性别']
    print(sheet.cell(1,1).value) #获取指定单元格数据,前面是行后面是列 小明
    print(sheet.nrows) #显示所有行数
    print(sheet.ncols) #显示所有列数

    2)根据sheet页名字确定sheet页

    import xlrd
    book =xlrd.open_workbook(r'students.xlsx') #不会创建,文件需要先存在--打开excel
    sheet2=book.sheet_by_name('Sheet2')#根据sheet页的名字获取sheet页
    print(sheet2.row_values(0))#根据行号获取整行的数据 ['编号', '姓名', '性别']
    print(sheet2.row_values(1))#根据列获取整列的数据 ['编号', '姓名', '性别']
    print(sheet2.nrows)
    print(sheet2.ncols)
    返回结果:
    ['Sheet1', 'Sheet2', 'Sheet3']
    5
    3
    实例一:循环Excel中的内容,以字典的形式,存到列表里面
    import xlrd
    book =xlrd.open_workbook(r'students.xlsx') #不会创建,文件需要先存在--打开excel
    sheet=book.sheet_by_index(0) #根据sheet页的位置获取sheet页
    ress=[]
    student={}
    for i in range(1,sheet.nrows):
        res = sheet.row_values(i)
        student['id']=res[0]
        student['name']=res[1]
        student['sex']=res[2]
        ress.append(student)
    print(ress)
    实例二:循环Excel中的内容,以字典的形式,存到列表里面
    import xlrd
    book =xlrd.open_workbook(r'students.xlsx') #不会创建,文件需要先存在--打开excel
    sheet=book.sheet_by_index(0) #根据sheet页的位置获取sheet页
    ress = []
    for i in range(1,sheet.nrows):
        student = {}
        id=sheet.cell(i,0).value
        name = sheet.cell(i, 1).value
        sex = sheet.cell(i, 2).value
        student['id']=id
        student['name']=name
        student['sex']=sex
        ress.append(student)
    print(ress)

    三、xlwt模块,xlwt模块用来写excel,写一个新的excel

    第一步:新建一个excel对象
    第二步:添加一个sheet页
    第三步:写入内容,注意前两个参数是int类型
    第四步:保存到文档中
    import xlwt
    book = xlwt.Workbook()#新建一个excel对象
    sheet = book.add_sheet('stu')#添加一个sheet页
    sheet.write(0,0,'编号') #写入内容
    book.save('stu.xls') #保存到文档中
    实例: 牛牛写入excel内容例子:写excel的时候,你保存的文件名必须是xls
    list = [{'id': 1, 'name': '小明', 'sex': '男'}, {'id': 2, 'name': '小黑', 'sex': '男'}, {'id': 3, 'name': '小怪', 'sex': '男'}, {'id': 4, 'name': '小白', 'sex': '女'}]
    title = ['编号','姓名','性别']
    import xlwt
    book = xlwt.Workbook()#新建一个excel对象
    sheet = book.add_sheet('stu')#添加一个sheet页
    for i in range(len(title)):    #title多长,循环几次
       
    sheet.write(0,i,title[i])    #i既是lis的下标,也代表每一列
    for row in range(len(list)):    #取lis的长度,控制循环次数
       
    id = list[row]['id']    #因为lis里面存的是一个字典,lis[row]就代表字典里面的每个元素,然后字典取固定的key就可以了
       
    name = list[row]['name']
        sex = list[row]['sex']
        new_row = row+1#因为循环的时候是从0开始循环的,第0行是表头,不能写要从第二行开始写,所以这里行数要加一
       
    sheet.write(new_row,0,id)
        sheet.write(new_row,1,name)
        sheet.write(new_row,2,sex)
    book.save('new_stu.xls')


     

    四、xlutils模块用来修改excel的内容,不能直接修改原来的excel内容,必须得先复制一个新的excel,然后对这个新的excel进行修改,用法如下:

    1)打开一个excel文件
    2)通过xlutils里面copy复制一个excel对象
    3)获取文件里的sheet页
    4)修改指定单元格的值
    5)将修改过的内容,保存到一个文件里

    from xlutils.copy import copy
    book = xlrd.open_workbook('new_stu.xls')#打开原来的excel
    new_book = copy(book)#通过xlutils里面copy复制一个excel对象
    sheet = new_book.get_sheet(0)#获取sheet页
    sheet.write(0,0,'id') #修改指定单元格的值
    new_book.save('new_stu_1.xls') #将修改过的内容,保存到一个文件里
  • 相关阅读:
    TX1/TX2 Qt安装与配置
    Gsteramer 环境配置
    NVIDIA Jetson TX2刷机
    TX2之多线程读取视频及深度学习推理
    搭建USB摄像头转RTSP服务器的多种方法
    TX2 五种功耗模式
    NVIDIA TX1/TX2 对比
    tf.reduce_mean
    关闭tensorflow运行时的警告信息
    sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
  • 原文地址:https://www.cnblogs.com/MLing/p/7123759.html
Copyright © 2020-2023  润新知