• (12)-Python3之--openpyxl模块


    1.安装

    pip install openpyxl

    2.Excel操作的流程

    1、打开excel,进入工作薄 workbook
    2、选择表单 Sheet

    3、单元格  Cell
    4、读写操作

    3.Excel操作

    首先准备已经存在的Excel表格。

    3.1获取单元格的值

    from openpyxl import load_workbook
    # 选择Excel表
    wb = load_workbook(r'E:UsersWeb_Corexlstest.xlsx')
    # 选择表单
    sh = wb['Sheet1']
    # 获取单元格的值,从1开始。
    print(sh.cell(1,1).value)
    
    结果:
    A1

    3.2写入单元格的值

    from openpyxl import load_workbook
    # 选择Excel表
    wb = load_workbook(r'E:UsersWeb_Corexlstest.xlsx')
    # 选择表单
    sh = wb['Sheet1']
    
    # 写单元格的值
    sh.cell(6,1).value = "二狗"
    # 保存写入的数据 - 整个工作薄
    wb.save(r'E:UsersWeb_Corexlstest.xlsx')

    结果:

     3.3获取总行数、总列数

    from openpyxl import load_workbook
    # 选择Excel表
    wb = load_workbook(r'E:UsersWeb_Corexlstest.xlsx')
    # 选择表单
    sh = wb['Sheet1']
    
    rows = sh.max_row   # 总行数
    print("总行数为:" + str(rows))
    colums = sh.max_column  # 总列数
    print("总列数为:" + str(colums))
    
    结果:
    总行数为:10
    总列数为:4

    3.4读取所有的数据

    from openpyxl import load_workbook
    
    # 定义一个获取所有数据的函数
    def read_all_data():
        wb = load_workbook(r"E:UsersWeb_Corexlstest.xlsx")  # 打开Excel
        sh = wb['Sheet1']  # 获取表单
        cases = []  # 所有的cases用列表存放
        max_row = sh.max_row  # 获取最大行
        max_column = sh.max_column  # 获取最大列
    
       # 通过双循环获取所有数据
        for r in range(2, max_row + 1):  # 遍历行
            case = {}
            for j in range(1, max_column + 1):
                key = sh.cell(row=1, column=j).value  # 遍历列
                case[key] = sh.cell(row=r, column=j).value
            cases.append(case)  # 将一行数据放到列表
    
        wb.save(r"E:UsersWeb_Corexlstest.xlsx")
        wb.close()
        return cases
    
    # 调用函数,打印数据
    all_data = read_all_data()
    print(all_data)
    
    结果:
    [{'D1': 'D2', 'C1': 'C2', 'B1': 'B2', 'A1': 'A2'}, {'D1': 'D3', 'C1': 'C3', 'B1': 'B3', 'A1': 'A3'},
    {'D1': 'D4', 'C1': 'C4', 'B1': 'B4', 'A1': 'A4'}, {'D1': 'D5', 'C1': 'C5', 'B1': 'B5', 'A1': 'A5'},
    {'D1': 'D6', 'C1': 'C6', 'B1': 'B6', 'A1': '二狗'}, {'D1': 'D7', 'C1': 'C7', 'B1': 'B7', 'A1': 'A7'},
    {'D1': 'D8', 'C1': 'C8', 'B1': 'B8', 'A1': 'A8'}, {'D1': 'D9', 'C1': 'C9', 'B1': 'B9', 'A1': 'A9'},
    {'D1': 'D10', 'C1': 'C10', 'B1': 'B10', 'A1': 'A10'}]
  • 相关阅读:
    ORA-28040: No matching authentication protocol
    kettle增量抽取数据--高效抽取方式
    为什么MySQL的索引要使用B+树而不是其它树形结构?比如B树?
    echarts饼图指示线文字换行
    数据库概论
    Java学习笔记
    案例分析
    软件工程作业3
    软件工程作业2
    软件工程作业1
  • 原文地址:https://www.cnblogs.com/renshengruxi/p/12300458.html
Copyright © 2020-2023  润新知