from openpyxl import load_workbook class MyExcel: def __init__(self,excel_path,sheet_name): """ 打开工作簿,选择一个表单 """ wb=load_workbook(excel_path)#加载一个excel,得到工作簿对象 self.sh=wb[sheet_name] def read_data(self): """ 读取excel表单数据 """ data=list(self.sh.values)#将生成器转换为列表 header=data[0] case_data=[] for row in data[1:]: row_dict=dict(zip(header,row))#将头部和用例打包 case_data.append(row_dict) return case_data,怎么优化这段获得所有sheet页表格
时间: 2023-05-18 15:05:53 浏览: 152
这段代码是使用Python中的openpyxl库,导入其中的load_workbook函数。同时定义了一个名为MyExcel的类,其中包含一个初始化函数__init__,该函数接受两个参数excel_path和sheet_name,用于打开指定路径下的工作簿,并选择其中的一个表单。
相关问题
from openpyxl import load_workbook class MyExcel: def init(self,excel_path,sheet_name): """ 打开工作簿,选择一个表单 """ wb=load_workbook(excel_path)#加载一个excel,得到工作簿对象 self.sh=wb[sheet_name] def read_data(self): """ 读取excel表单数据 """ data=list(self.sh.values)#将生成器转换为列表 header=data[0] case_data=[] for row in data[1:]: row_dict=dict(zip(header,row))#将头部和用例打包 case_data.append(row_dict) return case_data
这段代码是使用Python中的openpyxl库,导入load_workbook函数,并定义了一个名为MyExcel的类。在这个类中,定义了一个init函数,该函数接收两个参数:excel_path和sheet_name。这个函数的作用是打开一个工作簿,并选择其中一个表单。具体实现是通过调用load_workbook函数来打开工作簿,然后使用sheet_name参数来选择指定的表单。
import os import pandas as pd from openpyxl import load_workbook from openpyxl.utils.dataframe import dataframe_to_rows class ExcelProcessor: def __init__(self, path): self.path = path def process_excel(self): for root, dirs, files in os.walk(self.path): for filename in files: if filename.endswith('.xlsx') or filename.endswith('.xls'): filepath = os.path.join(root, filename) self.process_file(filepath) def process_file(self, filepath): wb = load_workbook(filepath) for sheet in wb: if sheet.title == '系数表': df = pd.DataFrame(sheet.values) df_t = df.T df_t.columns = df_t.iloc[0] df_t = df_t[1:] self.add_to_sheet(wb, df_t, '系数表_T') wb.save(filepath) def add_to_sheet(self, wb, df, sheet_name): try: ws = wb[sheet_name] except KeyError: ws = wb.create_sheet(sheet_name) for r in dataframe_to_rows(df, index=False, header=True): ws.append(r) for col in ws.columns: for cell in col: if cell.data_type == 'f': cell.value = cell.value return ws上述代码如何实例化使用
这段代码定义了一个ExcelProcessor类,用于处理指定路径下的Excel文件。要实例化该类,可以按如下方式进行:
1. 导入ExcelProcessor类:`from excel_processor import ExcelProcessor`
2. 创建ExcelProcessor实例对象,例如:`processor = ExcelProcessor('/path/to/excel/files')`
3. 调用ExcelProcessor的方法进行Excel文件处理,例如:`processor.process_excel()`
需要注意的是,这段代码中的Excel文件处理方法是根据指定路径下的所有Excel文件进行遍历处理的。因此,在实例化ExcelProcessor对象时需要传入正确的路径参数。另外,为了能够运行该代码,还需要将代码保存在名为'excel_processor.py'的文件中,并在实例化ExcelProcessor对象时正确导入该类。
阅读全文