import os
import openpyxl
import pandas as pd
def openpyxl_to_dataframe(file_obj, header=1, skiprows=1, skipcol=1):
"""
从一个基于openpyxl的Excel文件对象中提取数据并转换为Pandas的DataFrame对象。
参数:
file_obj: 文件对象
包含Excel数据的文件对象
header: int, 默认为1
作为列名的行索引
skiprows: int, 默认为1
要跳过的行数
skipcol: int, 默认为1
要跳过的列数
返回值:
data: DataFrame
包含Excel数据的DataFrame对象
"""
# 从文件对象中加载工作簿
wb = openpyxl.load_workbook(file_obj, read_only=True)
# 获取工作表对象,假设工作表名为 Sheet1
sht = wb[wb.sheetnames[0]]
# 读取第header行数据作为列名
column_names = []
for datas in sht.iter_rows(min_row=header, min_col=skipcol, max_row=header):
for i in range(len(datas)):
value = datas[i].value
column_names.append(value)
# 存储读取数据的列表
data_list = []
# 读取数据的同时存储到列表中
for datas in sht.iter_rows(min_row=skiprows, min_col=skipcol):
temp_list = []
for i in range(len(datas)):
cell_value = datas[i].value
temp_list.append(cell_value)
data_list.append(temp_list)
# 将数据列表转换为DataFrame,列名为之前读取的第header行数据
data = pd.DataFrame(data_list, columns=column_names)
return data