当前位置: 首页 > news >正文

将具有多个sheet的excel表格中所有sheet某一列翻译成中文,且保留原始样式

将具有多个sheet的excel表格中所有sheet某一列翻译成中文,且保留原始样式

将具有多个sheet的excel表格中所有sheet某一列翻译成中文,且保留原始样式

import pandas as pd
import numpy as np
import traceback
import openpyxldef llm_summary(question):from http import HTTPStatusimport dashscopedashscope.api_key="sk-"from dashscope import Generation    system_prompt="你是一位CUDA领域的专家,请将用户输入的专业术语翻译成中文,并简单解释"messages = [{'role': 'system', 'content': system_prompt},{'role': 'user', 'content': question}]response = Generation.call(model="qwen-max", messages=messages,result_format='message')if response.status_code == HTTPStatus.OK:messages.append({'role': response.output.choices[0]['message']['role'],'content': response.output.choices[0]['message']['content']})output=response.output.choices[0]['message']['content']return outputreturn ""def translate(txt):ret=llm_summary(txt)print(txt,ret)return retfile_path = 'input.xlsx'
excel_file = pd.ExcelFile(file_path)
sheets_dict = pd.read_excel(file_path, sheet_name=None)
sheet_names = excel_file.sheet_names[3:]error=False
for sheet_name in sheet_names:if error:break     df = sheets_dict[sheet_name]print(sheet_name,len(df))for i in range(len(df)):Metric_description = str(df.iloc[i, 1])if len(Metric_description)==0 or Metric_description=="nan":breakTranslation = str(df.iloc[i, 2])try:if len(Translation)==0 or Translation=="nan":df.iloc[i, 2] = translate(Metric_description)except:error=True   print(i,Metric_description)            traceback.print_exc()breaksheets_dict[sheet_name] = dfworkbook = openpyxl.load_workbook(file_path)    # 使用 openpyxl 将新的数据写回到原始工作表里
for sheet_name in sheets_dict:ws = workbook[sheet_name]df = sheets_dict[sheet_name]for r_idx, row in enumerate(ws.iter_rows(min_row=2), 1):  # min_row=2跳过标题行for c_idx, cell in enumerate(row, 1):try:new_value = df.iat[r_idx-1, c_idx-1]  # r_idx-1 和 c_idx-1 是因为 pandas 索引从 0 开始cell.value = new_valueexcept IndexError:break# 保存工作簿
workbook.save(file_path)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • [Python学习篇] Python进程和线程
  • QT程序异常结束解决方法
  • rancher管理多个集群
  • 科技云报道:产业为根大模型应用为擎,容联云推动企业营销服场景重塑
  • 【网络协议】PIM
  • 深入浅出:Scikit-Learn基础教程
  • 初中生物知识点总结(人教版)
  • 市场营销中智能决策支持系统的设计与应用分析
  • C++多态的实现原理
  • python 代码设计贪吃蛇
  • python如何查看类的函数
  • C++学习笔记
  • 自动化回复信息工具的开发分享!
  • 报错:pytest: error: argument -m: expected one argument (via addopts config)
  • 100 个网络基础知识普及,看完成半个网络高手!
  • 深入了解以太坊
  • Android交互
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Docker容器管理
  • ECMAScript入门(七)--Module语法
  • gf框架之分页模块(五) - 自定义分页
  • java第三方包学习之lombok
  • JS实现简单的MVC模式开发小游戏
  • php面试题 汇集2
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • sessionStorage和localStorage
  • TCP拥塞控制
  • 测试开发系类之接口自动化测试
  • 记录一下第一次使用npm
  • 力扣(LeetCode)56
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端js -- this指向总结。
  • 如何选择开源的机器学习框架?
  • 思维导图—你不知道的JavaScript中卷
  • 用element的upload组件实现多图片上传和压缩
  • 怎么把视频里的音乐提取出来
  • 怎么将电脑中的声音录制成WAV格式
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 第二十章:异步和文件I/O.(二十三)
  • 湖北分布式智能数据采集方法有哪些?
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2)STL算法之元素计数
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (SERIES12)DM性能优化
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (算法)Travel Information Center
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)3D模板阴影原理
  • (转)详解PHP处理密码的几种方式
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .java 9 找不到符号_java找不到符号