首页 > 编程语言 >基于python实现-根据Excel表格指定的UniqueKey的顺序-到另一个参考表格中查找-补全与自己相关的数据

基于python实现-根据Excel表格指定的UniqueKey的顺序-到另一个参考表格中查找-补全与自己相关的数据

时间:2023-05-20 16:14:35浏览次数:58  
标签:UniqueKey 补全 表格 Excel cols ExcelSheet1 key

今天笔者在整理一份数据时,有这样一个需求,已知有多个ID是UniqueKey,每一个UniqueKey及与它相关的数据为一行,存放于Excel表格行中

但他们相关的数据可能有误,而另一个表格Excel-02中的数据没有问题,但是UniqueKey顺序与第一个表格不一样

现在主要是要修改第一个表格的数据,当然可以使用excel相关的函数与公式实现,但这里笔者尝试使用python脚本处理

实现的逻辑与思路如下:

1、先将Excel-02表格中的数据,重新生成一个字典数据,因为UniqueKey是唯一的,这里我们可以以它为字段的key

2、使用for遍历Excel-01表格中的UniqueKey,然后到第一步生成中的字典数据中进行取相关的所以值(保险处理,需要考虑UniqueKey在上面的字典中找不到的情况)

3、将第二步生成的数据重新写入到一个新的Excel中,这样新的Excel中的UniqueKey,就肯定是和Excel-01中的UniqueKey顺序一样,也就可以直接粘贴了

特别说明:如果后面多个字段为空的,那很可能是因为没有在Excel-02中找到一样的UniqueKey,这种情况就需要手动处理了

核心的python代码如下:

import openpyxl
import pandas

UniqueKey=["xxx01","xxx02","xxx03"]

ExcelWorkBook = openpyxl.load_workbook('Excel-02.xlsx')

ExcelSheet1 = ExcelWorkBook[ExcelWorkBook.sheetnames[0]]

rows,cols = ExcelSheet1.max_row,ExcelSheet1.max_column

ExcelDataDict={}

for i in range(1,rows+1):
    A=ExcelSheet1.cell(row=i, column=1).value
    cols_data=[]
    for j in range(1,cols+1):
        cols_data.append(ExcelSheet1.cell(row=i, column=j).value)
    ExcelDataDict[A]=cols_data

NewData,ErrorItem=[],[]

for key in UniqueKey:
    try:
        NewData.append(ExcelDataDict[key])
    except:
        NewData.append([key])
        ErrorItem.append(key)

最后将NewData的数据写入到新的Excel中就可以了,这样形成的表格中的UniqueKey就与我们需要修正的Excel-01顺序是一样的了

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17417330.html

 

标签:UniqueKey,补全,表格,Excel,cols,ExcelSheet1,key
From: https://www.cnblogs.com/5201351/p/17417330.html

相关文章

  • 记录--Vue中如何导出excel表格
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、导出静态数据1、安装vue-json-excelnpm i vue-json-excel注意,此插件对node有版本要求,安装失败检查一下报错是否由于node版本造成!2、引入并注册组件(以全局为例)importVuefrom"vue";importJsonExce......
  • Revit二次开发 知识点总结(表格)
    Revit二次开发知识点总结(表格) 宏Macro概述宏是一种程序,用来实现重复任务的自动化;宏可以执行一系列预定义的步骤,从而完成特定任务;模块是对宏的分组;实际上是一个编程项目;应用程序级的宏:可以在任何文档中使用,可以自行运行;可以独立于Revit运行;可以向Revit添加工具;......
  • 实用教程丨如何将实时数据显示在前端电子表格中(一)
      AuthorAlexZhangCategorySpreadJSTagsSpreadJS,前端电子表格,实时数据,RealTimeData   前言数据(包括股票、天气和体育比分)在不断更新为新信息时最为有用。SpreadJS是一个非常通用的JavaScript电子表格组件,它还可以轻松地使用、显示并......
  • python+playwright 学习-63 table表格定位
    前言定位table表格内容以及获取table表格数据。table表格场景网页table表格示例table页面有这几个明显的标签:table、tr、th、td<table>标示一个表格<tr>标示这个表格的一行</th>定义表头单元格</td>定义单元格标签,一组<td>标签将将建立一个单元格,<td>标签必须放......
  • elementplus tag数组。并且表格不换行,宽度自定义
    修改bugbug那些tag要是没有内容的话全部加上<el-tagv-if="scope.row.label">{{scope.row.label}}</el-tag>以及兴趣栏目其实是tag数组。并且表格不换行,宽度自定义<el-tablestyle="width:100%"border><el-table-column:label="......
  • 如何正确使用表格组件的formatter属性
    fastadmin前端表格组件使用的是bootstrap-table,如果我们想要自定义表格的内容,可以使用formatter属性。最常规的用法如下:columns:[[{field:'type',title:__('type'),formatter:function(value,row){......
  • 一张图解析FastAdmin中的表格列表的功能
    功能描述请根据图片上的数字索引查看对应功能说明。1.菜单名称和描述默认生成的CRUD是没有菜单名称和描述显示的,如果需要显示则可以修改权限管理->菜单规则,给对应菜单的添加上备注信息后即可显示,支持HTML2.TAB过滤选项卡在一键生成CRUD时,如果表中存在status字段且为ENUM类型,则......
  • 常用的表格检测识别方法-表格区域检测方法(上)
    ​ 常用的表格检测识别方法 表格检测识别一般分为三个子任务:表格区域检测、表格结构识别和表格内容识别。本章将围绕这三个表格识别子任务,从传统方法、深度学习方法等方面,综述该领域国内国外的发展历史和最新进展,并提供几个先进的模型方法。 3.1表格区域检测方法 表......
  • java读取excel表格(含有多个sheet)
    publicList<List<List<String>>>uploadExcel(StringfilePath)throwsFileNotFoundException{//两种方式,一种直接上传的文件MultipartFile,一种用本地的文件:FileFilefile2=newFile(filePath);InputStreaminputStream=newFileInputStrea......
  • 设计软件的二次开发总结(表格)
    设计软件的二次开发总结二次开发软件语言框架UG(UGNX的简称)CC++C#JavaUFUN,支持C、C++语言;NXOpen,支持C++、Java、C#;OpenGrip类似于AutoCAD的Lisp;OpenC,UG的一个C语言函数库;CATIAC++VBAC#CAA支持 C++Java;(支持COM、OLE);CATIA支持 VBA、......