• 给定列表,按照列表内容获取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认为是有值

  • 相关阅读:
    bzoj2004(矩阵快速幂,状压DP)
    bzoj1242(弦图判定)
    uva1659(最大费用循环流)
    bzoj1009
    bzoj2893(费用流)
    bzoj4873(最大权闭合子图)
    bzoj2879(动态加边费用流)
    51nod 1239 欧拉筛模板
    poj2774 sa模版
    洛谷3391文艺平衡树
  • 原文地址:https://www.cnblogs.com/mghhzAnne/p/14108626.html
Copyright © 2020-2023  润新知