




下面是代码
import openpyxl import jieba def main(args): file_path = args[0] # 从参数中获取文件路径# 打开 Excel 文件 wb = openpyxl.load_workbook(file_path) ws = wb.active # 查找 "来源名称" 所在列 col_num = None for row in ws.iter_rows(min_row=1, max_row=1): for cell in row: if cell.value == "来源名称": col_num = cell.column break if col_num: break # 如果找到了 "来源名称" 所在列 if col_num: # 转换列数为字母表示的列号 col_letter = openpyxl.utils.get_column_letter(col_num) # 查找最后一个有值的列号 max_col_num = ws.max_column while ws.cell(row=1, column=max_col_num).value is None and max_col_num > 1: max_col_num -= 1 # 如果最后一个有值的单元格为空,则将分词结果写入该单元格 # 否则将分词结果写入该列的下一列 if ws.cell(row=1, column=max_col_num).value is None: for row in ws.iter_rows(min_row=2, max_row=ws.max_row, min_col=col_num, max_col=col_num): text = row[0].value if text: result = ' '.join(jieba.cut(text)) row[max_col_num-1].value = result else: next_col_num = max_col_num + 1 next_col_letter = openpyxl.utils.get_column_letter(next_col_num) for row in ws.iter_rows(min_row=2, max_row=ws.max_row, min_col=col_num, max_col=col_num): text = row[0].value if text: result = ' '.join(jieba.cut(text)) ws[next_col_letter+str(row[0].row)].value = result # 保存 Excel 文件 wb.save(file_path)