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

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

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

1.先下载openpyxl模块

pip install openpyxl

2. 读取Excel基本步骤

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


   
   
  1. import openpyxl # openpyxl引入模块
  2. # 读取 excel文件
  3. def read_to_excel(path: str, sheet: str):
  4. # 实例化一个workbook对象
  5. workbook = openpyxl.load_workbook(path)
  6. # 获取excel文件内的那一个sheet
  7. data = workbook[sheet]
  8. # 定义个要输出的总数组
  9. return_data = []
  10. # data.rows 为表格内的每一行数据
  11. # 循环获取表格内的每一行数据
  12. for index, row in enumerate(data.rows):
  13. # 定义一个空的数组用来存放每一行数据单元格的数据
  14. return_row = []
  15. for col_index, col_value in enumerate(row):
  16. # 获取单元格数据 追加到return_row
  17. return_row.append(col_value.value)
  18. return_data.append(return_row)
  19. # 把遍历出来得每一行数据数据return_row 追加到总数组 return_data中 然后输出
  20. return return_data
  21. if __name__ == '__main__':
  22. # path 访问文件的路径
  23. path = r'D:\Python\Project\demo.xlsx'
  24. # Excel 中sheet 的名字
  25. sheet = 'Sheet1'
  26. # 打印read_to_excel方法
  27. 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文件的代码 ,


   
   
  1. import openpyxl # openpyxl引入模块
  2. # 读取 excel文件
  3. def read_to_excel(path: str, sheet: str, info):
  4. # 实例化一个workbook对象
  5. workbook = openpyxl.load_workbook(path)
  6. # 获取excel文件内的那一个sheet
  7. data = workbook[sheet]
  8. # 定义个要输出的总数组
  9. return_data = []
  10. # data.rows 为表格内的每一行数据
  11. # 循环获取表格内的每一行数据
  12. for index, row in enumerate(data.rows):
  13. # 判断index为0那一行跳出本次循环忽略本次数据 就不会再添加了
  14. if index == 0:
  15. continue
  16. # 定义一个空的数组用来存放每一行数据单元格的数据
  17. return_row = []
  18. for col_index, col_value in enumerate(row):
  19. # 获取单元格数据 追加到return_row
  20. # 定义一个{}
  21. col_obj = {}
  22. # 通过col_index索引 使info中key的名字和col_value.value能匹配
  23. # info[col_index]获取key
  24. # 把 col_value.value赋值给col_obj[info[col_index]]
  25. col_obj[info[col_index]] = col_value.value
  26. return_row.append(col_obj)
  27. return_data.append(return_row)
  28. # 把遍历出来得每一行数据数据return_row 追加到总数组 return_data中 然后输出
  29. return return_data
  30. if __name__ == '__main__':
  31. # path 访问文件的路径
  32. path = r'D:\Python\Project\demo.xlsx'
  33. # Excel 中sheet 的名字
  34. sheet = 'Sheet1'
  35. # 在这里定义一个包含key的数组
  36. info = [ 'name', 'age', 'address']
  37. print(read_to_excel(path, sheet, info))

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

 更新:

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

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

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值