python 通过openpyxl来操作Excel文件(一 ):读取Excel文件

这篇文章讲python 通过openpyxl来读取Excel文件 不清楚怎么通过openpyxl来写入Excel文件的小伙伴可以看我另一篇文章

 传送门python 通过openpyxl来操作Excel文件(二 ):写入Excel文件

1.先下载openpyxl模块

pip install openpyxl

2. 读取Excel基本步骤

先看一下要读取的文件内容(这是没有标头的Excel文件)

import openpyxl  # openpyxl引入模块

# 读取 excel文件
def read_to_excel(path: str, sheet: str):
    # 实例化一个workbook对象
    workbook = openpyxl.load_workbook(path)
    # 获取excel文件内的那一个sheet
    data = workbook[sheet]
    # 定义个要输出的总数组
    return_data = []
    # data.rows 为表格内的每一行数据
    # 循环获取表格内的每一行数据
    for index, row in enumerate(data.rows):
        # 定义一个空的数组用来存放每一行数据单元格的数据
        return_row = []
        for col_index, col_value in enumerate(row):
            # 获取单元格数据 追加到return_row
            return_row.append(col_value.value)
        return_data.append(return_row)
    # 把遍历出来得每一行数据数据return_row 追加到总数组 return_data中 然后输出
  
    return return_data


if __name__ == '__main__':
    # path 访问文件的路径
    path = r'D:\Python\Project\demo.xlsx'
    # Excel 中sheet 的名字
    sheet = 'Sheet1'
    # 打印read_to_excel方法
    print(read_to_excel(path, sheet))

执行以上代码可看到以实际输出的效果

现在输出的只是数组,有时候我们想要的数据中需要是包含key的对象 如 [[{'name': 'John Brown1S'}, {'age': 18}, {'address': 'New York No. 1 Lake Park'}]]

 而且 Excel文件文件中还包含着标头信息需要过滤

下面处理数据结构和过滤表头数据

这个有表头的Excel文件

 

 先定义key的值(下面有完整代代码)

 

 在 read_to_excel 中加入红框内的代码(下面有完整代代码)

输出的结果可以看到数据中已经包含了key

 不过标题信息也被输出出来了 接下来处理 过滤表头数据

处理表头信息可以在循环中使用if   continue

判断index为0那一行跳出本次循环忽略本次数据 就不会再添加了 如下图

下面是完整的读取Excel文件的代码 ,

import openpyxl  # openpyxl引入模块


# 读取 excel文件
def read_to_excel(path: str, sheet: str, info):
    # 实例化一个workbook对象
    workbook = openpyxl.load_workbook(path)
    # 获取excel文件内的那一个sheet
    data = workbook[sheet]
    # 定义个要输出的总数组
    return_data = []

    # data.rows 为表格内的每一行数据
    # 循环获取表格内的每一行数据
    for index, row in enumerate(data.rows):
        # 判断index为0那一行跳出本次循环忽略本次数据 就不会再添加了
        if index == 0:
            continue

        # 定义一个空的数组用来存放每一行数据单元格的数据
        return_row = []

        for col_index, col_value in enumerate(row):

            # 获取单元格数据 追加到return_row
            # 定义一个{}
            col_obj = {}
            # 通过col_index索引 使info中key的名字和col_value.value能匹配
            # info[col_index]获取key
            # 把 col_value.value赋值给col_obj[info[col_index]]
            col_obj[info[col_index]] = col_value.value
            return_row.append(col_obj)

        return_data.append(return_row)
    # 把遍历出来得每一行数据数据return_row 追加到总数组 return_data中 然后输出

    return return_data

if __name__ == '__main__':
    # path 访问文件的路径
    path = r'D:\Python\Project\demo.xlsx'
    # Excel 中sheet 的名字
    sheet = 'Sheet1'
    # 在这里定义一个包含key的数组
    info = ['name', 'age', 'address']
    print(read_to_excel(path, sheet, info))

写的有点多了 下一篇再写python 通过openpyxl来写入Excel文件吧

 更新:

不知道怎么通过openpyxl来写入Excel文件的小伙伴可以看我另一篇文章

 传送门python 通过openpyxl来操作Excel文件(二 ):写入Excel文件

 

 

 

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值