ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 读取Excel数据

2021-01-29 21:05:34  阅读:194  来源: 互联网

标签:sheet 读取 python Excel sheetName names table xlrd excelPath


# 如果xlrd运行报错,先卸载当前安装的xlrd
# pip uninstall xlrd
# 再安装低版本的xlrd
# pip install xlrd==1.2.0

import xlrd
import sys
import os

def read_excel_dict(excelPath,sheetName):

    if not os.path.exists(excelPath):
        print("ERROR!\nexcel不存在")
        sys.exit()

    wb = xlrd.open_workbook(excelPath)  # 打开文件
    sheet_names = wb.sheet_names()      # 获取所有工作表名称

    # 判断输入表名是否实际存在于excel内
    if sheetName not in sheet_names:
        print("ERROR!\n输入表名错误,输入表名为:{}, 实际表名为:{}".format(sheetName, sheet_names))
        sys.exit()

    table = wb.sheet_by_name(sheetName)
    key = table.row_values(0)   # 取第一行作为key值
    rowNum = table.nrows        # 获取总行数
    colNum = table.ncols        # 获取总列数

    if rowNum <= 1:
        print("数据为空,总行数小于1")
    else:
        r = []
        x = 1
        for row in range(1,rowNum):
            cell = {}
            # cell['rowNum'] = row
            values = table.row_values(x)
            for col in range(colNum):
                cell[key[col]] = values[col]
            r.append(cell)
            x += 1
        return r

def read_excel_list(excelPath,sheetName):

    if not os.path.exists(excelPath):
        print("ERROR!\nexcel不存在")
        sys.exit()

    wb = xlrd.open_workbook(excelPath)  # 打开文件
    sheet_names = wb.sheet_names()      # 获取所有工作表名称

    # 判断输入表名是否实际存在于excel内
    if sheetName not in sheet_names:
        print("ERROR!\n输入表名错误,输入表名为:{}, 实际表名为:{}".format(sheetName, sheet_names))
        sys.exit()

    table = wb.sheet_by_name(sheetName)
    key = table.row_values(0)   # 取第一行作为key值
    rowNum = table.nrows        # 获取总行数
    colNum = table.ncols        # 获取总列数

    if rowNum <= 1:
        print("数据为空,总行数小于1")
    else:
        r = []
        x = 1
        for row in range(1,rowNum):
            cell = []
            values = table.row_values(x)
            for col in range(colNum):
                cell.append(values[col])
            r.append(cell)
            x += 1
        return r



if __name__ == "__main__":
    filepath = "../Data/body.xlsx"
    sheetName = "Sheet1"

    data = read_excel_dict(filepath, sheetName)
    print(data)

    data = read_excel_list(filepath, sheetName)
    print(data)

 

标签:sheet,读取,python,Excel,sheetName,names,table,xlrd,excelPath
来源: https://www.cnblogs.com/zy791976083/p/14346996.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有