• Python学习Python操作excel


    python操作excel使用xlrd、xlwt和xlutils模块。

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

    一、xlrd模块,读取excel

    xlrd用来读excel,只能是xls格式,xlsx不能用这些模块

    1、 打开excel: open_workbook('表名')

    2、 打开sheet页: 工作簿. sheet_by_index(0)

    3、 读取数据

    import xlrd #只能读
    book = xlrd.open_workbook('nhy.xls') #打开excel,这个表必须存在,否则会报错
    
    print(book.nsheets)#获取到excel里面总共有多少个sheet页
    print(book.sheet_names()) #获取所有sheet页的名字,返回一个列表
    
    sheet = book.sheet_by_index(0) #根据sheet页的索引获取sheet页
    #sheet = book.sheet_by_name('sheet1')#根据sheet页的名字获取sheet页
    
    print(sheet.cell(0,0).value)  #按照索引,获取某个单元格里面的内容,第一个值为列,第二个值为行
    # print(sheet.cell(1,0).value)
    
    print(sheet.row_values(0))#获取第一行的数据
    print(sheet.row_values(1))#获取某一行的数据
    print(sheet.nrows)#这个就是excel里面总共有多少行
    
    print(sheet.col_values(0))#某一列的数据
    print(sheet.col_values(1))#某一列的数据
    print(sheet.ncols)#总共有多少列
    
    #打印每行信息
    for rownum in range(sheet.nrows):  #循环取每行的数据
        print(sheet.row_values(rownum))#取每行的数据

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

    1、新建excel对象

    2、添加sheet页:excel对象.add_sheet('xxx')

    3、写入表头

    4、循环写入每行数据

    import xlwt
    title = ['姓名', '年龄', '性别', '分数']
    stus = [['mary', 20, '', 89.9], ['mary', 20, '', 89.9], ['mary', 20, '', 89.9], ['mary', 20, '', 89.9]]
    wbk = xlwt.Workbook() # 新建一个excel对象
    sheet = wbk.add_sheet('stu')# 添加一个名为stu的sheet页
    
    for i in range(len(title)):  # 写入表头
        sheet.write(0, i, title[i])  # 写入每行,第一个值是行,第二个值是列,第三个是写入的值   
    row = 1  #
    for i in stus:
        col = 0  #
        for j in i:
            sheet.write(row, col, j)  # 循环写入每行数据
            col += 1
        row += 1
    # 保存数据到‘szz.xls’文件中
    wbk.save('szz.xls')  # 保存excel必须使用后缀名是.xls的,不是能是.xlsx的

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

    注意:xlutils的导入很特殊,不能用import xlutils,必须用from xlutils import copy

    1、 复制工作簿:copy.copy(工作簿) 首先要先用xlrd打开一个工作簿,然后才能复制

    2、 获取sheet页:工作簿.get_sheet(0)

    3、 修改内容:sheet页.write(行号,列号,内容)

    4、保存新的excel,覆盖原来的excel

    import xlrd
    from xlutils import copy
    book1 = xlrd.open_workbook('nhy.xls')#打开原来的excel
    new_book = copy.copy(book1)#拷贝一个新的excel
    sheet = new_book.get_sheet(0)#获取第一个sheet页
    sheet.write(1,3,'20')#写入excel,第一个值是行,第二个值是列
    sheet.write(1,1,'张三')
    new_book.save('nhy.xls')#保存新的excel,保存excel必须使用后缀名是.xls的,不是能是.xlsx的
  • 相关阅读:
    14.使用ConfigMap管理应用配置
    13.实战交付一套dubbo微服务到k8s集群(6)之交付dubbo服务的消费者集群到K8S
    12.实战交付一套dubbo微服务到k8s集群(5)之交付dubbo-monitor到K8S集群
    11.实战交付一套dubbo微服务到k8s集群(4)之使用Jenkins进行持续构建交付dubo服务的提供者
    11.实战交付一套dubbo微服务到k8s集群(3)之dubbo微服务底包镜像制作
    10.实战交付一套dubbo微服务到k8s集群(3)之二进制安装Maven
    9.实战交付一套dubbo微服务到k8s集群(2)之Jenkins部署
    《说透中台》读书笔记
    消息队列高手课——04 | 如何利用事务消息实现分布式事务?
    消息队列高手课——03 | 消息模型:主题和队列有什么区别?
  • 原文地址:https://www.cnblogs.com/ddxxn/p/9663686.html
Copyright © 2020-2023  润新知