如何使用 Python 和 ChatGPT 翻译 Excel 文档:一份逐步指南

ChatGPT 翻译 Excel

介绍

市面上有许多翻译工具。但并不是所有的翻译工具都能提供满意的结果。这就是为什么我们非常喜欢ChatGPT。

ChatGPT 是 OpenAI 开发的。它 不仅 是 一款 普通 的 工具。它 在 许多 任务 上 表现 出色,尤其 擅长 翻译。往往,它 的 翻译 质量 能 和 专业人士 媲美。

顺便提一下,您可以使用我们的服务轻松进行翻译。只需上传您的Excel文件,我们的网站会帮您完成翻译。翻译好之后,您可以下载文件,文件格式不会有任何改变。

但是,我们如何利用 ChatGPT 和 Python 来自行翻译 Excel 文件呢?在这篇博客中,我们将逐步向您展示如何操作。我们希望确保您的翻译既迅速又高质量。

先决条件

在我们开始之前,你需要准备一些东西:

  • 基础 Python 知识 本文将包含一些编程内容。如果你具备一些基础的 Python 知识那自然是好的。但别担心,我们会详细解释每个步骤。
  • Python 确认你的电脑已经安装Python。如果还没有安装,你可以从官方网站下载。
  • pip 这是一个用于安装 Python 库的工具。如果你安装的是 Python3,那么你可能已经拥有 pip 了。
  • OpenAI 的 GPT-4 API 密钥 使用 ChatGPT 进行翻译时需要这个密钥。如果你还没有,请访问 OpenAI 的网站以获取它。
  • 你的 Excel 文件 准备好你需要翻译的 Excel 文件。

查看 Excel 文件内部情况

当你在Excel中以.xlsx为后缀保存一个电子表格时,你实际上是在把许多文件打包到一个单一文件中。这种文件格式被称作OpenXML。如果你对Excel文件内部是如何运作的感兴趣,那我们不妨解压一个来详细探究一番:

  1. 工作表文件夹(xl/worksheets/):

在这个文件夹内,您将找到对应于您Excel文件中每个工作表的一个XML文件。因此,如果您的工作簿中有三个标签页或工作表,您会在此找到sheet1.xml、sheet2.xml和sheet3.xml这三个文件。

这些XML文件中的每一个都对应表格中的行、列和单元格。这是存放你实际数据的地方。

  1. 样式(xl/styles.xml):

这个 XML 文件就像是你的 Excel 数据的时尚设计师。它包含了你的工作簿中所有使用样式的定义。

如果你曾经好奇过Excel是如何记住哪些单元格被设为蓝色、哪些文本被加粗,或者哪些数字被格式化成货币形式的,所有的定义都在这里。

  1. 共享字符串 (xl/sharedStrings.xml):

为了节约空间并提高文件效率,Excel 把你工作表中所有使用的独特字符串(文本)都储存在这个文件里。

例如,假设你的工作簿里“总计”这个词重复了1,000次,在这种情况下,它只会被存储一次,之后在每个出现的地方都是引用同一个存储内容。

4. 工作簿结构(xl/workbook.xml):

把这看作是你的Excel文件的目录表。

它描述了工作簿的架构,详细列出了工作簿中包含的各种工作表、它们的排列顺序,甚至包括了一些属性设置,比如工作表的保护状态。

当你使用openpyxl这类工具时,很多细节都是被隐藏起来的,让你能够更直觉地操作Excel数据。但是,了解这些底层结构能够让你获得更深的理解,尤其是在你想要执行一些高级操作或是解决问题时。

使用openpyxl读写Excel文档

openpyxl 是一个专门用于读取和写入 Excel 文件(包括 .xlsx 和 .xlsm 格式)的 Python 库。它使你能够直接操作 Excel 的工作表和单元格。

以下是开始的方法:

1. 安装 openpyxl

如果你还没安装openpyxl,可以通过pip来安装:

pip install openpyxl

2. 使用 openpyxl 的 Excel 基础操作

要想有效运用openpyxl,理解一些Excel的核心概念及其如何在openpyxl中对应操作是非常有帮助的:

A. 工作簿:提到Excel文件, 我们通常指的是工作簿。使用openpyxl时,可以把工作簿理解为你正在操作的主文件。

from openpyxl import load_workbook
# Loading an existing workbook
workbook = load_workbook(filename="sample.xlsx")

B. 表格: 一个工作簿包括多个单独的表格,这就像书里的各个页面。每个表格以表格式保存你的数据。使用openpyxl,你可以访问当前活动的工作表或者通过它的名字访问任意一个工作表。

# Getting the active sheet
sheet = workbook.active
# Accessing a sheet by name
another_sheet = workbook["Sheet2"]

C. 单元格:表格由行和列构成。行与列相交的地方称为一个单元格。你的数据就储存在这里。openpyxl能够帮助你读取和写入这些单元格中的数据。

# Reading the value from cell A1
cell_value = sheet["A1"].value
# Writing to cell B1
sheet["B1"] = "Hello, Excel!"

D. 行和列:在Excel中,行是水平的并且有编号,而列是垂直的并且用字母来标记。openpyxl提供了直观的方法来遍历它们。

# Iterating through rows
for row in sheet.iter_rows(values_only=True):
    for value in row:
        print(value)

3. 读取和编辑Excel文件

from openpyxl import load_workbook
 
# Load the workbook and select the active sheet
workbook = load_workbook(filename='your_file.xlsx')
 
# Loop through all sheets
for sheet in workbook:
    # Loop through all rows and columns in the sheet
    for row in sheet.iter_rows():
        for cell in row:
            original_text = cell.value
 
            # Check if the cell contains text
            if isinstance(original_text, str):
                # Replace with your ChatGPT translation method
                translated_text = TRANSLATION_METHOD_HERE(original_text)
                cell.value = translated_text
 
# Save the changes to the same file
workbook.save('your_file.xlsx')

在上述代码中,将“TRANSLATION_METHOD_HERE”替换为你打算用来借助 ChatGPT 翻译文本的方法。这种方式将检查工作簿中的所有单元格。如果某个单元格内有文本,那么这些文本就会被翻译。

使用ChatGPT进行翻译

在使用openpyxl加载你的Excel数据后,下一个步骤是利用ChatGPT来翻译这些内容。以下是详细的操作指南:

1. 安装 OpenAI Python 客户端:

这个客户端让我们可以与ChatGPT互动并获取翻译。

pip install openai

2. 设置 ChatGPT 翻译功能:

import openai
 
# Initialize the OpenAI API with your key
# openai.api_key = 'YOUR_OPENAI_API_KEY'
 
def translate_text(text, target="en"):
    content = "Translate the following text to " + target + ": " + text
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": content}]
    )
 
    return response.choices[0].message.content

当然,如果你愿意,你可以很容易地将ChatGPT替换成DeepL或其他翻译服务。翻译功能之美在于它的简易性,使其能够灵活地与各种不同的翻译工具集成。

3. 将翻译功能集成到Excel迭代中:

现在,请将这个翻译功能与先前的openpyxl代码结合起来。对于每一个包含文本的单元格,调用translate_text函数来获取它的翻译。

# ... (Your openpyxl code to read the Excel file)
 
    for row in sheet.iter_rows():
        for cell in row:
            original_text = cell.value
 
            if isinstance(original_text, str):
                # Replace 'TARGET' with desired language code
                translated_text = translate_text(original_text, "TARGET")
                cell.value = translated_text
 
workbook.save('your_translated_file.xlsx')

4. 记住您的API成本:

请注意,翻译大型Excel文件可能会导致大量的API调用,这可能会产生高昂的费用。务必时刻监控您的使用情况,以免产生意外的费用。

完整代码:利用 ChatGPT 和 openpyxl 将 Excel 内容翻译成法语

通过这段代码,你能迅速地把Excel文件中的英语文本转换成法语。我们将借助ChatGPT的翻译能力,并使用openpyxl来操作Excel文件。开始吧!

from openpyxl import load_workbook
import openai
 
# Initialize the OpenAI API with your key
openai.api_key = 'YOUR_OPENAI_API_KEY'
 
def translate_text(text, target="fr"):
    content = "Translate the following text to " + target + ": " + text
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": content}]
    )
 
    return response.choices[0].message.content
 
# Load the workbook and select the active sheet
workbook = load_workbook(filename='your_file.xlsx')
 
# Loop through all sheets
for sheet in workbook:
    # Loop through all rows and columns in the sheet
    for row in sheet.iter_rows():
        for cell in row:
            original_text = cell.value
 
            # Check if the cell contains text
            if isinstance(original_text, str):
                translated_text = translate_text(original_text)
                cell.value = translated_text
 
# Save the changes to the same file
workbook.save('your_translated_file.xlsx')

结论

通过结合ChatGPT和openpyxl,我们开发了一款简单的工具,能够将Excel中的英文文本翻译成法语、日语、德语等语种。尽管我们的示例中只展示了法语翻译,你也可以将这种方法应用到ChatGPT支持的任何其他语言上。整个过程非常简洁明了,大约只需30行代码即可完成。

此外,您可以利用我们的网站来轻松翻译文档。 只需上传您的Excel文件,我们就会为您进行翻译。 翻译完成后,您可以下载文件。 过程简便且迅速!

常见问题解答(FAQs)及解决方案

如果我遇到了与API限制相关的错误怎么办?

答案:OpenAI 平台会根据不同的账户类型设定相应的请求频率限制。如果您遭遇请求频率限制的错误提示,您或许需要在脚本中的翻译请求之间加入一些延时,或者考虑将您的 OpenAI 账户升级至更高的等级。

我怎样才能同时翻译成多种语言?

答案:您可以更改代码,使其能够循环遍历一个目标语言列表。对于每一个单元格,您能够多次针对每种语言调用翻译函数,并将结果分别保存到不同的Excel工作表或文件里。

使用 ChatGPT 进行翻译需要付费吗?

答案:是的,根据您的使用情况和订阅方案,使用OpenAI API可能需要支付一定费用。请时刻注意您的使用量,以免产生意外费用。

本文主要探讨如何翻译Excel文件。如果您想利用Python和ChatGPT翻译Word文档,可以参考使用Python和ChatGPT自动化翻译Word文档