原理

先获取表格第一行表头字符串所在的列下标,循环行数时,可以得到行,进而定位到指定的单元格。

# -*- ecoding: utf-8 -*-
# @ModuleName: test001
# @Function:
# @Author: darling
# @Time: 2022-04-12 15:52
import datetimeimport openpyxldef get_data_batch(columnHeaders):file_name = './excel.xlsx'workbook = openpyxl.load_workbook(file_name)# 获取当前活动的sheet页对象sheet = workbook.active# 获取指定的sheet页对象sheet2 = workbook["Sheet1"]# df=sheet2.# 按行保存单元格值((1,2,3),(4,5,6),(7,8,9))valuesByRow = tuple(sheet2.values)# 第一行,也就是表头firstRow = valuesByRow[0]# 空字典,收集指定表头对应的下标cellValueList = {}for columnHeader in columnHeaders:for i, v in enumerate(firstRow):if v == columnHeader:cellValueList[columnHeader] = ibreak# 循环表格进行业务处理for row in valuesByRow[1:]:inventoryId = row[cellValueList.get('库存ID')]toLot = row[cellValueList.get('到批号')]toManufactureDate = row[cellValueList.get('到生产日期')]if inventoryId is None or inventoryId == '':continue# 处理时间类型,如果是datetime类型,则进行转类型处理if isinstance(toManufactureDate, datetime.datetime):toManufactureDate = str(toManufactureDate.date())if __name__ == "__main__":# 获取数据get_data_batch(['库存ID','到批号', '到生产日期'])

以上是基于下面的方法进行改造,共勉之

# -*- coding: utf-8 -*-
"""
第一种方法
"""
from openpyxl import load_workbookwb = load_workbook(filename='./excel.xlsx', data_only=True)
sheet = wb[wb.sheetnames[0]]
minRow = sheet.min_row  # 最小行
maxRow = sheet.max_row  # 最大行
minCol = sheet.min_column  # 最小列
maxCol = sheet.max_column  # 最大列def read_value_by_column_header(sheet, columnHeader):# 读取第一行数据firstRow = tuple(sheet.rows)[0]# 创建空列表储存数据cellValueList = []# 判断第几列的表头是输入的表头for i, cell in enumerate(firstRow):if cell.value == columnHeader:# tuple(sheet.columns)返回一个元组包含按列排列的Cell对象,# 我们只要指定表头的那一列columns = tuple(sheet.columns)[i]# 取这一列第二个到最后一个cell对象,# 将其value属性(也就是单元格值)append到空列表中for cell in columns[1:]:cellValueList.append(cell.value)breakreturn cellValueList
# -*- coding: utf-8 -*-
"""
第二种方法
"""
from openpyxl import load_workbookwb = load_workbook(filename='./excel.xlsx', data_only=True)
sheet = wb[wb.sheetnames[0]]def read_value_by_column_header(sheet, columnHeader):# 按行保存单元格值((1,2,3),(4,5,6),(7,8,9))valuesByRow = tuple(sheet.values)# 第一行,也就是表头firstRow = valuesByRow[0]# 空列表cellValueList = []for i, v in enumerate(firstRow):if v == columnHeader:for row in valuesByRow[1:]:cellValueList.append(row[i])breakreturn cellValueList

python 按照excel表头字符串读取单元格数据相关推荐

  1. php怎么读取excel里的数据类型,php读取excel表格数据-对PHPExcel一些简单的理解 及怎么读取单元格数据...

    php读取excel,excel下多个个工作表,该怎么读取 php读取excel,excel下多个个工作表的方法: 1.利用PHPExcelReader来完成多个excel的读取. 2.PHPExce ...

  2. Excel怎么统计合并单元格数据

    今天小编跟大家分享一下Excel怎么统计合并单元格数据 1.打开Excel文件 2.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说.) 3.点击[统计与分析],选 ...

  3. Excel如何统计合并单元格数据个数

    今天跟大家分享一下Excel如何统计合并单元格数据个数 1.打开要统计的Excel表格,小编现在计划统计出各个班级的参赛人员个数 2.首先我们点击下图选项(Excel工具箱,百度即可了解详细下载安装信 ...

  4. js解析excel文件,读取单元格中的值

    首先需要引入js包,https://github.com/SheetJS/sheetjs这个是地址 我这里就具体说一下读取单元格值的方法. 方法参考js读取本地Excel内容 这个博主的,但是想要获取 ...

  5. easyexcel导出excel文件合并相同单元格数据

    1.引入easyexcel依赖 !-- 阿里开源easyexcel--><dependency><groupId>com.alibaba</groupId>& ...

  6. python 查找excel内容所在的单元格_python 读取excel中单元格的内容

    python 读取excel中单元格的内容 excel文件内容: 读取excel代码: # coding=utf-8 import xlrd import sys reload(sys) sys.se ...

  7. python 查找excel内容所在的单元格_使用Python查找Excel单元格引用

    使用openpyxl以这种方式操作Excel文件需要很多细节.首先,值得一提的是,xlsx文件包含每个单元格的两种表示形式-公式和公式的当前值.openpyxl可以返回其中一个,如果需要值,则应在打开 ...

  8. 阿里easyExcel -- excel下载/导出/读取 (单元格自定义下拉选择、不支持图片)

    主要包 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency><gro ...

  9. python 查找excel内容所在的单元格_python 根据excel单元格内容获取该单元格所在的行号...

    python 环境:Python 2.7.16 需要安装:pandas/xlrd (pip2 install pandas/ pip2 install xlrd) import pandas as p ...

最新文章

  1. iOS 15.2计划上线“数字遗产”!网友:管的真远,身后事都替我操心?
  2. 【转/TCP协议编程】 基于TCP的Socket 编程
  3. Java与C/C++的比较(转)
  4. [51nod1384]全排列
  5. 【新品发布】山海软件生产线pspl,包含了一个开源的混淆器
  6. 目标驱动的软件度量(选译)
  7. HttpClient在.NET Core中的正确打开方式
  8. 一个穷人是从什么时候开始有钱的?
  9. WWDC 2013 Session笔记 - iOS7中弹簧式列表的制作
  10. 在2020年学习cocos游戏引擎
  11. (192)FPGA上电后IO的默认状态(Vivado软件默认为1)
  12. “做实体店,已经是绝路了吗?”
  13. mongodb 学习笔记--- 基础知识
  14. 第3章 如何赢得客户
  15. 基于springboot的paypal支付demo
  16. Vue 九宫格抽奖实现
  17. Principal branch
  18. java.lang.RuntimeException: java.lang.NoSuchMethodException: com.xxx.analy
  19. 单片机长时间程序跑飞_单片机程序跑飞的三种现象、原因及解决方法
  20. base64 decode java_Java实现Base64编解码

热门文章

  1. 如何用css和HTML设置聚光灯效果
  2. windows下玩linux--MetroPipe VPM
  3. android+手机的总内存不足,安卓手机老是提示内存不足怎么办?
  4. 拯救win10笔记本
  5. saltstack--salt-cp、file模块的使用
  6. 谷歌云虚拟服务器教程,GCP谷歌云主机新建虚拟机实例/Debian系统安装BT宝塔面板教程...
  7. notepad++如何连接虚拟机
  8. java去o操作,Java 文件I/O操作
  9. 湖南卫视邮件服务器架设方案
  10. java利用第三方jar实现excel,word,ppt,txt转pdf格式