Excel多条数据请求大模型接口并写入新Excel中


class GET_LLM_Test(object):
    def __init__(self, arg):
        self.arg = arg

    # 传入参数,获取指定表格列数据,并返回List
    def get_excel_count(self):
        import pandas as pd
        
        # 获取excel列数据
        get_excel_column = pd.read_excel(
            self.arg['excel_path'], 
            header = self.arg['header'], 
            engine='openpyxl', 
            usecols=[self.arg['usecols']],
            sheet_name = self.arg['sheet_name']
        )

        # 导入list
        excel_column_list = get_excel_column.values.tolist()
        excel_result_content = []
        
        for column_content in excel_column_list:
            excel_result_content.append(column_content[0])
        
        # 返回结果
        # print(excel_result_content)
        return excel_result_content
    
    # 请求接口
    def use_llm(self, excel_result_content):
        import requests
        import json
        import pandas as pd

        HEADER = {'Content-Type':'application/json; charset=utf-8'}
        
        # 循环列内容
        result_excel = pd.DataFrame()
        for question in excel_result_content:
            data = {
                    "messages": [
                        {
                            "role": "system",
                            "content":'你是一个AI助手'
                        },
                        {
                            "role": "user",
                            "content": question
                        }
                    ]
                }
            
            request_data = json.dumps(data)
            response = requests.post(url=self.arg['url'], data=request_data)
            result = json.loads(response.text.encode())
            question_result = result['result']
            
            # 是否写入新的excel文件中
            if arg['write_new_excel']==True:
                data = {'问题':question, '结果':question_result}
                result_excel = result_excel.append(pd.DataFrame(data, index=[0]))
            else:
                print("功能正在实现中.....")
        result_excel.to_excel(self.arg['excel_path'], index=False)
        print('文件写入成功')    




if __name__=="__main__":
    import argparse
    parser = argparse.ArgumentParser()
    
    
    arg = {}
    arg['url'] = 'http://*********/qwen/predict'
    arg['excel_path'] = '/测试原始文件.xlsx'
    
    # 传递获取表格参数
    arg['header'] = 0               # 表格第一行作为标题行
    arg['usecols'] = 0              # 获取表格第几列数据(0代表第一列)
    arg['sheet_name'] = 'Sheet1'    # 指定表格对应的工作表名称
    
    arg['write_new_excel'] = True   # 是否写入新的excel表格(Flase为追加)
    arg['new_excel_path'] = '/测试结果文件.xlsx'
    
    # 实例化
    llm = GET_LLM_Test(arg)
    
    # 获取表格数据
    excel_result_content = llm.get_excel_count()
    llm.use_llm(excel_result_content)



### 回答1: 可以使用Python的openpyxl模块来对Excel的特定数据进行提取和写入表格。具体操作包括打开目标Excel文件、找到特定数据所在的单元格、将数据提取出来并保存到一个变量、创建一个表格或者打开一个已有的表格、将提取出的数据写入表格的指定位置。 ### 回答2: Excel是办公软件常用的电子表格软件,它可以帮助我们高效地进行数据录入、处理和分析,而Python是一种高效、易于学习和使用的编程语言。结合PythonExcel的优势,可以方便地对Excel表格数据进行提取和处理。 下面将介绍利用PythonExcel的特定数据进行提取并写入表的方法: 1. 安装PythonPython提供了许多强大的库,其操作Excel表格的常用库是openpyxl,可以使用pip install openpyxl命令来安装该库。 2. 加载Excel表格 可以使用openpyxl库的load_workbook()函数来加载Excel表格,该函数需要指定Excel表格的文件路径,代码示例如下: ``` import openpyxl # 加载Excel表格 workbook = openpyxl.load_workbook(filename="example.xlsx") ``` 3. 定位工作表 在Excel,每个工作表都有一个唯一的名称,可以使用workbook对象的worksheet属性来定位工作表,代码示例如下: ``` # 定位工作表 worksheet = workbook["Sheet1"] ``` 其,“Sheet1”是工作表的名称,可以根据实际的需求进行修改。 4. 提取特定数据 可以使用cell()函数来提取单元格数据,该函数需要指定单元格的行和列,代码示例如下: ``` # 提取单元格数据 cell_value = worksheet.cell(row=2, column=3).value ``` 其,row和column参数分别表示要提取的单元格的行和列,可以根据实际的需求进行修改。 5. 写入表 可以创建一个Excel表格,并在其写入提取的特定数据。可以使用openpyxl库的Workbook()函数来创建Excel表格,使用create_sheet()函数创建工作表,使用cell()函数写入单元格数据,代码示例如下: ``` import openpyxl # 加载Excel表格 workbook = openpyxl.load_workbook(filename="example.xlsx") # 定位工作表 worksheet = workbook["Sheet1"] # 提取特定数据 cell_value = worksheet.cell(row=2, column=3).value # 创建Excel表格 new_workbook = openpyxl.Workbook() # 创建工作表 new_worksheet = new_workbook.create_sheet(title="New Sheet") # 写入单元格数据 new_worksheet.cell(row=1, column=1, value=cell_value) # 保存Excel表格 new_workbook.save(filename="new.xlsx") ``` 其,“New Sheet”是工作表的名称,“new.xlsx”是存储Excel表格的文件名,可以根据实际的需求进行修改。 通过以上步骤,就可以方便地利用PythonExcel表格的特定数据进行提取并写入表了。需要注意的是,在进行数据提取和写入时,要根据Excel表格数据的具体结构进行代码编写,确保数据能够正确地提取和写入。 ### 回答3: Python是一门在数据处理领域十分出色的编程语言,对于Excel数据的提取和写入来说也是非常便捷的。下面,本文将分步骤详细介绍如何利用PythonExcel的特定数据进行提取和写入表。 1. 安装所需的库 首先,我们需要安装openpyxl库,它是Python处理Excel表格数据的好工具,可以通过以下命令进行安装: ``` pip install openpyxl ``` 2. 打开Excel文件 在Python,我们可以使用openpyxl库下的Workbook()方法创建工作簿对象,并使用load_workbook()方法打开Excel文件,如下所示: ```python from openpyxl import Workbook from openpyxl import load_workbook wb = load_workbook('example.xlsx') ``` 注意:上述代码需要导入openpyxl库。 3. 选定表格和定义行列号 使用工作簿对象wb下的get_sheet_by_name()方法选定要处理的表格,并使用max_row和max_column方法获取表格的最大行数和最大列数。另外,还可以定义一个行列变量用来指定起始和结束的行列号: ```python sheet = wb.get_sheet_by_name('Sheet1') start_row = 2 end_row = sheet.max_row start_col = 1 end_col = sheet.max_column ``` 注意:这里要按照你自己Excel文件的表格名字和起始结束行列号进行相应修改。 4. 循环遍历表格数据 使用for循环语句进行遍历表格数据,将需要的数据提取出来,这里需要根据需求定义提取的数据: ```python for row in range(start_row, end_row+1): cell1 = sheet.cell(row, start_col).value cell2 = sheet.cell(row, end_col).value if cell1 == "特定数据1": pass if cell1 == "特定数据2": pass ``` 注意:这里的"特定数据1"和"特定数据2"需要根据实际情况进行替换。 5. 写入表格 定义一个的工作簿变量new_wb,并使用create_sheet()方法创建一个表格。对于每一个需要提取的特定数据,在表格相应的单元格写入数据: ```python new_wb = Workbook() new_sheet = new_wb.create_sheet(title='New Sheet') for row in range(start_row, end_row+1): cell1 = sheet.cell(row, start_col).value cell2 = sheet.cell(row, end_col).value if cell1 == "特定数据1": new_sheet.cell(row, 1).value = cell1 if cell1 == "特定数据2": new_sheet.cell(row, 1).value = cell2 ``` 6. 保存并关闭 使用工作簿对象new_wb下的save()方法将表格保存到指定的文件,并使用close()方法关闭打开的文件: ```python new_wb.save('result.xlsx') new_wb.close() ``` 至此,利用PythonExcel的特定数据提取并写入表的步骤就结束了。如果按照以上步骤操作,应该能够顺利地完成这个任务。但请注意,在实际操作,根据你自己的表格数据格式和需求情况进行相应的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值