zoukankan      html  css  js  c++  java
  • python中的excel操作

    一. Excel在python中的应用

    存测试数据

    有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到。测试的时候就从数据库中读取出来。这点是非常重要的!

    存测试结果

    二. Excel中的三大对象:

    • Workbook
    • Sheet
    • Cell

    在excel中,主要的操作是在sheet中对数据进行读、写、修改的操作

    操作流程:

    1. 打开一个excel文件,或者创建一个excel文件,生成一个工作簿(workbook)对象

    2. 获取某个表单(sheet)对象

    3. 在表单对象中的单元格(cell)中读、写、修改数据

    三. Excel库

    python中有好几个与excel操作相关的模块

    xlrd库:从excel中读取数据,支持xls, xlsx

    xlwt库:对excel进行修改操作。不支持对xlsx格式的修改

    xlutils库:在xlwt和xlrd中,对一个已存在的文件进行修改

     

    官方说法:

    openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files

    网址:http://www.python-excel.org/

    四. openpyxl--常用操作

    from openpyxl import load_workbook

    #打开一个已存在的excel文件

    wb = load_workbook("sample.xlsx")

    from openpyxl import Workbook

    #创建一个新的excel文件

    wb = Workbook("hello.xlsx")

     

    #获取sheet对象,get_sheet_by_name是旧的方法,新的方法是wb[sheetname]

    sh = wb.get_sheet_by_name("Sheet1")  

    #创建一个新的sheet

    sh_new = wb.create_sheet("新建的sheet")

     

    #获取指定单元格中的值

    cl = sh.cell(row=1, column=1).value

    #修改指定单元格的值

    sh.cell(row=1, column=1).value = "hello"

     

    #获取当前sheet的数据总行数

    rows = sh.max_row

    #获取当前sheet的数据总列数

    columns = sh.max_column

     

    #保存当前workbook中所有的修改

    wb.save("sample.xlsx")

    注意:openpyxl中列和行的起始下标都是1

    五. 实例

    #引入库
    from openpyxl import load_workbook
    
    #加载一个excel文件,进入到工作簿
    wb = load_workbook("testdata.xlsx")
    
    #获取指定的表单
    sh = wb["Sheet1"]
    
    #获取表单中数据
    name = sh.cell(row=2, column=1).value
    print(name)
    
    #修改表单中的数据--修改数据,注意在写操作时,必须先关闭excel文件
    sh.cell(row=2, column=3).value = 18
    
    #保存修改数据的操作--保存数据
    wb.save("testdata.xlsx")
    
    #获取总行数、总列数
    print(sh.max_row)
    print(sh.max_column)
    print(sh.cell(row=3, column=3).value)
    sh.cell(row=3, column=3).value = 25
    print(sh.cell(row=3, column=3))
    
    #读取所有数据,按行读取
    for index in range(1, sh.max_row + 1):
        print("行号: ", index)
        for sub_i in range(1, sh.max_column + 1):
            print("列号: ", sub_i, "内容: ", sh.cell(row=index, column=sub_i).value)
    
    
    结果:
    小翟
    3
    3
    18
    <Cell 'Sheet1'.C3>
    行号:  1
    列号:  1 内容:  name
    列号:  2 内容:  sex
    列号:  3 内容:  age
    行号:  2
    列号:  1 内容:  小翟
    列号:  2 内容:  男
    列号:  3 内容:  18
    行号:  3
    列号:  1 内容:  瑛子
    列号:  2 内容:  女
    列号:  3 内容:  25

    附excel内容:

     

  • 相关阅读:
    周记【距gdoi:133天】
    tarjan
    1040: [ZJOI2008]骑士
    次小生成树 最小度限制生成树
    2014.12.12 生成树
    bzoj 3217: ALOEXT
    Segmentation models 是一个基于PyTorch的图像分割神经网络-------------------->>>>实例测试
    venv创建虚拟环境
    ubuntu16.04-arm版 下载和编译pytorch
    segmentation_models_pytorch库学习
  • 原文地址:https://www.cnblogs.com/my_captain/p/9074685.html
Copyright © 2011-2022 走看看