Python(十七)excel指定列自动翻译成英文

前言

本章主要讲述在excel的指定列后面添加一列,并翻译成英文



一、效果图


二、代码

实际需求:

python 复制代码
# -*- codeing = utf-8 -*-
# @time: 2025/1/16  16:32
# @Author : Mikasa
#
# @Aim:自动将客户发的货物清单里的商品名称,翻译成英文;
#       并在当前excel中,品名后面加入一列,并将翻译后的英文写入到excel里

from translate import Translator
import pandas as pd

file_path = "./translate_packaging_list/test.xlsx"
sheet_name = "Sheet1"
column_name = "品名"
new_file_path = "./translate_packaging_list/test_translate.xlsx"


def extract_column_as_array(file_path, sheet_name, column_name):
    """
    获取excel某列数据,并返回一个list
    :param file_path:
    :param sheet_name:
    :param column_name:
    :return: 去掉空行的lsit
    """
    df = pd.read_excel(file_path, sheet_name=sheet_name)
    column_data = df[column_name].tolist()
    return column_data


def translate_text(text, src='zh-cn', dest='en'):
    """
    将中文翻译成英文
    :param text:
    :param src:
    :param dest:
    :return:
    """
    translator = Translator(from_lang=src, to_lang=dest)
    translation = translator.translate(text)
    return translation


def translate_packaging_list():
    """
    1、翻译后的值生成一个list
    2、在excel【品名】后加入一列【goods】列
    3、将翻译后的list写入到该列
    :return:
    """
    result_array = extract_column_as_array(file_path, sheet_name, column_name)  # 获取列表
    df = pd.read_excel(file_path, sheet_name=sheet_name)
    new_column_name = "goods"
    new_loc = df.columns.get_loc('品名') + 1 #获取指定列后面的坐标
    english_cargo_name_list = []
    for good_name in result_array:
        if type(good_name) == str:
            translated_text = translate_text(good_name)
            print(f"{good_name} -> {translated_text}")
            english_cargo_name_list.append(translated_text)
        else:
            english_cargo_name_list.append(good_name)
    print("english_cargo_name_list:", english_cargo_name_list)
    print("new_loc:", new_loc)
    df.insert(loc=new_loc, column=new_column_name, value=english_cargo_name_list)
    df.to_excel(new_file_path, index=False)


if __name__ == '__main__':
    translate_packaging_list()
相关推荐
青少儿编程课堂1 小时前
威佐夫博弈(双堆取子游戏)解析
c++·python·算法·bfs·信息学竞赛
hhzz1 小时前
【OpenCV 入门到精通 03】图像入门:读取、显示、保存完全指南
人工智能·python·opencv·计算机视觉
金融小师妹2 小时前
AI趋势识别:黄仁勋宣布“AGI时代”到来,Astra能力跃迁背后的AI安全边界
大数据·python·深度学习·重构·逻辑回归
2501_941875285 小时前
从配置中心到动态管理的互联网工程语法演进与多语言实践分享
开发语言·python
hfywmsj5 小时前
广州餐饮铺位招租决策模型:多因子选址系统设计
开发语言·人工智能·python·广州餐饮铺位招租
泡海椒8 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
hqyjzsb8 小时前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
sanjiaomao3339 小时前
从论文公式到Python实现:用单元测试校验滑动平均算法
python·算法·单元测试
linweidong11 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
The Future is mine11 小时前
Excel如何只允许对部分表格内容进行修改
excel