zoukankan      html  css  js  c++  java
  • 给定列表,按照列表内容获取excel指定列名下的内容

    excel文件内容如下:

     想要实现的功能:指定想要获取的列名,返回列名和内容的字典列表

    栗子:输入:columnname=["姓名","班级","身高"]

             预期返回:

    [{'姓名': '小张', '班级': '1年6班', '身高': 175}, {'姓名': '小张', '班级': '1年6班', '身高': 175}, {'姓名': '小张', '班级': '1年6班', '身高': 175}]

    '''
    功能说明:file是文件路径,namelist是想要获取内容的excel列名
    '''
    import openpyxl
    def getdata(file,namelist):
    workbook=openpyxl.load_workbook(file)
    sheet=workbook['Sheet1']
    columnnamecell=sheet['1'] #获取第一行的所有cell
    columnname=[y.value for y in columnnamecell ] #namelist中字段在excel中的行数列表
    mappinglist=[]

    for rownum in range(2,sheet.max_row+1):
    mapping = {}
    for x in namelist:
    index_num=columnname.index(x)+1 #excel索引和数组索引差1
    mapping[x]=sheet.cell(rownum,index_num).value

    mappinglist.append(mapping)

    return mappinglist

    if __name__=="__main__":
    column_name=["姓名","班级","身高"]
    file="test.xlsx"
    dic=getdata(file,column_name)
    print(dic)
    )

    输出:

    D:pythonprogremget_excel_datavenvScriptspython.exe D:/pythonprogrem/get_excel_data/getdata.py
    [{'姓名': '小李', '班级': '3年2班', '身高': 162}, {'姓名': '小王', '班级': '2年3班', '身高': 180}, {'姓名': '小张', '班级': '1年6班', '身高': 175}]

     注意:在获取excel行数的时候,即使单元格值是空,但如果单元格有特殊格式,也会被openpyxl认为是有值

  • 相关阅读:
    vue 短期时间
    使用moment.js写一个倒计时
    使用moment.js
    js 共用文件内容应用
    什么是闭包?闭包的优缺点?
    卧龙阶段
    音阶
    初步理解1=C
    认识简谱的构造,唱名,音名

  • 原文地址:https://www.cnblogs.com/mghhzAnne/p/14108626.html
Copyright © 2011-2022 走看看