使用pandas、xlrd、openpyxl读取Excel

首先创建一个示例Excel文件example.xlsx,其中包含以下数据:

Name Age Gender
Alice 28 Female
Bob 35 Male
Charlie 42 Male
Dave 29 Male
Eve 31 Female

安装

pip install pandas
pip install xlrd
pip install openpyxl

方法一:使用Pandas库

  • 使用Pandas库来读取Excel文件并将其转换为字典格式。这是最简单和最常用的方法。

    import pandas as pd
    
    # 读取Excel文件
    excel_file = 'example.xlsx'
    sheet_name = 'Sheet1'
    
    # 使用Pandas读取Excel文件
    data_frame = pd.read_excel(excel_file, sheet_name=sheet_name)
    
    # 将数据转换为字典格式
    data_dict = data_frame.to_dict(orient='records')
    
    print(data_dict)
    
  • 输出结果:

    [{'Name': 'Alice', 'Age': 28, 'Gender': 'Female'}, {'Name': 'Bob', 'Age': 35, 'Gender': 'Male'}, {'Name': 'Charlie', 'Age': 42, 'Gender': 'Male'}, {'Name': 'Dave', 'Age': 29, 'Gender': 'Male'}, {'Name': 'Eve', 'Age': 31, 'Gender': 'Female'}]
    

方法二:使用xlrd库

  • 示例代码

    import xlrd
    
    # 读取Excel文件
    excel_file = 'example.xlsx'
    sheet_name = 'Sheet1'
    
    # 使用xlrd读取Excel文件
    workbook = xlrd.open_workbook(excel_file)
    sheet = workbook.sheet_by_name(sheet_name)
    
    # 将数据转换为字典格式
    data_dict = []
    for row in range(1, sheet.nrows):
        row_data = {
          
          }
        for col in range(sheet.ncols):
            cell_value = sheet.cell_value(row, col)
            row_data[sheet.cell_value(0, col)] = cell_value
        data_dict.append(row_data)
    
    print(data_dict)
    
  • 输出结果:

    [{'Name': 'Alice', 'Age': 28.0, 'Gender': 'Female'}, {'Name': 'Bob', 'Age': 35.0, 'Gender': 'Male'}, {'Name': 'Charlie', 'Age': 42.0, 'Gender': 'Male'}, {'Name': 'Dave', 'Age': 29.0, 'Gender': 'Male'}, {'Name': 'Eve', 'Age': 31.0, 'Gender': 'Female'}]
    

方法三:使用openpyxl库

  • 示例代码

    from openpyxl import load_workbook
    
    # 读取Excel文件
    excel_file = 'example.xlsx'
    sheet_name = 'Sheet1'
    
    # 使用openpyxl读取Excel文件
    workbook = load_workbook(filename=excel_file)
    worksheet = workbook[sheet_name]
    
    # 将数据转换为字典格式
    data_dict = []
    for row in worksheet.iter_rows(min_row=2, max_col=worksheet.max_column, values_only=True):
        row_data = {
          
          }
        for i, value in enumerate(row):
            row_data[worksheet.cell(row=1, column=i+1).value] = value
        data_dict.append(row_data)
    
    print(data_dict)
    
  • 输出结果:

    [{'Name': 'Alice', 'Age': 28.0, 'Gender': 'Female'}, {'Name': 'Bob', 'Age': 35.0, 'Gender': 'Male'}, {'Name': 'Charlie', 'Age': 42.0, 'Gender': 'Male'}, {'Name': 'Dave', 'Age': 29.0, 'Gender': 'Male'}, {'Name': 'Eve', 'Age': 31.0, 'Gender': 'Female'}]
    

总结

  • 可以看出使用Pandas库的方法最为简单,而使用xlrd和openpyxl库则需要手动处理每一行的数据。

  • 需要注意的是,以上示例代码仅适用于Excel文件中只有一个工作表的情况。如果Excel文件中有多个工作表,需要指定要读取的工作表。

  • 如果需要处理大量的Excel文件,建议使用Pandas库,因为它能够自动处理大部分数据类型,并且具有优秀的性能。如果只需要处理少量的Excel文件,可以考虑使用xlrd或openpyxl库。

猜你喜欢

转载自blog.csdn.net/weixin_44649870/article/details/130426487