import json import os import sys from natsort import natsorted from openpyxl import Workbook from openpyxl.styles import Alignment from openpyxl.styles import Border, Side, PatternFill from openpyxl.styles import Font from openpyxl.utils import get_column_letter from Util.PgUtil import * from openpyxl import load_workbook # pip install natsort # pip install openpyxl from Util.PgUtil import * if __name__ == '__main__': file_path = '绘鸭AI模板ForFillSql.xlsx' sql = 'truncate table t_hy_model_prompt' execute_modify(sql) # 加载工作簿 wb = load_workbook(file_path) # 选择活动的工作表 ws = wb.active # 初始化上一行的值列表,初始为空 last_row_values = [] # 遍历工作表中的所有行 idx = 0 for row in ws.iter_rows(values_only=True): idx = idx + 1 if idx == 1: continue # 为当前行创建一个新列表 current_row_values = [] # 遍历当前行的每个单元格 for col_idx, cell_value in enumerate(row): # 如果单元格的值是None,并且不是第一行(第一行没有上一行的值) if cell_value is None and last_row_values: # 使用上一行相同列的值替换当前单元格的值 current_row_values.append(last_row_values[col_idx]) else: # 如果单元格的值不是None,添加到当前行的值列表中 current_row_values.append(cell_value) model_id = int(current_row_values[0]) prompt_template = current_row_values[3] prompt_en = current_row_values[4] # 先检查有几个,然后+1就是应该是第几个 sql = 'select * from t_hy_model_prompt where model_id=' + str(model_id) results = execute_query(sql) prompt_id = len(results) + 1 sql = "insert into t_hy_model_prompt(model_id,prompt_id,prompt_template,prompt_en) values(%s,%s,%s,%s)" params = (model_id, prompt_id, prompt_template, prompt_en) execute_modify(sql, params) # 更新上一行的值 last_row_values = current_row_values wb.close()