如何翻译 Excel 文件(保留公式和格式)

Excel 工作簿不只包含文字,还可能包含公式、数字和各种格式。成功的翻译需要改变读者要阅读的文字,同时保留其他内容,确保数据仍然可用。

选择哪种方法,取决于文字的数量和分布位置。本文介绍三种方案:用 Google 表格的公式翻译文本列,通过提示词让 ChatGPT 翻译工作簿,以及使用 Spire.Agent.Office 构建可重复运行的 C# 翻译流程。下文均以将中文 Excel 翻译为英语为例。

快速导航:

方法一:在 Google 表格中翻译文本列

如果文字按列排列,可以在 Google 表格 中使用 GOOGLETRANSLATE,在原始数据旁边生成英文译文。将译文放回工作簿之前,你可以逐项检查。

步骤 1:将 Excel 文件的副本上传到 Google 云端硬盘,并用 Google 表格打开。如有必要,将其另存为 Google 表格文件以使用该函数;保留原始 Excel 文件以便对照。

上传并打开 Excel 文件

步骤 2:假设产品名称位于 E 列。在旁边插入辅助列,并在相邻单元格输入 =GOOGLETRANSLATE(E1,"zh-CN","en")。其中,zh-CN 表示简体中文,en 表示英语。

插入辅助列并输入公式

步骤 3:拖动填充柄,或将公式复制到其余各行。每个译文都会引用对应的源单元格。

向下填充公式

步骤 4:检查译文后,复制结果,通过 选择性粘贴 → 仅粘贴值 将其粘贴回对应的原始单元格。这样替换的是文本,不会把翻译公式一起粘贴进去。完成后删除辅助列。

复制译文并粘贴为值

步骤 5:对地区、类别等其他文本列重复上述操作,并单独翻译表头。将结果下载为 .xlsx 文件,再用 Excel 打开,检查公式和布局。

如果希望一直在 Excel 中操作,Microsoft 365 也提供类似的 =TRANSLATE(E1,"zh-CN","en") 函数。使用辅助列、再将结果粘贴为值的流程基本相同。

对于少量、排列规整的文本列,这种方法比较直接。如果文字散落在多个工作表中,操作会变得繁琐;从 Google 表格导出后,也需要在 Excel 中额外检查兼容性。

方法二:使用 ChatGPT 翻译整个工作簿

当文字分布在不同位置时,可以将 .xlsx 文件上传到 ChatGPT,让它返回翻译后的副本。关键是明确哪些内容需要翻译,以及哪些工作簿元素必须保持不变。

步骤 1:将 .xlsx 工作簿的副本上传到 ChatGPT。

上传 Excel 文件

步骤 2:在提示词中说明目标语言、翻译范围和需要保留的内容。例如:

将本 Excel 工作簿中的中文文本翻译为英语。在原有单元格中翻译列标题、销售代表姓名、区域名称、产品类别和产品名称。保持订单编号、数字、价格以及所有公式不变。保留工作表结构和单元格格式。返回一个可编辑的 .xlsx 文件。

输入提示词

步骤 3:下载翻译后的工作簿,用 Excel 打开,并对照原文件检查译文、公式和格式。

例如,一个包含 16 个公式单元格的销售工作簿,在翻译表头、地区、类别和产品名称后,可以保留原有公式与单元格样式。这说明该流程能够处理结构比较简单的文件。对于宏、数据透视表、图表或条件格式等较复杂的功能,还应分别检查。

如果想直接得到更新后的文件,而不愿添加辅助列或编写代码,ChatGPT 是一种方便的选择。和其他翻译方式一样,在分享文件前仍需检查措辞并核对工作簿。

方法三:使用 Spire.Agent.Office 在 C# 中自动翻译

如果 Excel 翻译是应用程序或定期流程的一部分,开发者可以用 C# 将其自动化。Spire.Agent.Office 接收 Excel Workbook 和自然语言指令,再将处理后的文件保存为新的 .xlsx。其公开的文档翻译示例还涵盖 Word 和 PowerPoint;这里只展示 Excel 流程。

步骤 1:安装软件包。

1
dotnet add package Spire.Agent.Office

步骤 2:加载 Excel 文件,指定翻译规则并执行指令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Xls;

string inputPath = @"C:\Documents\销售数据.xlsx";
string outputPath = @"C:\Documents\销售数据-英文版.xlsx";
string spireToken = "your spireToken";

string instruction = """
请将这个 Excel 工作簿中的中文文本翻译成英语。
翻译列标题、地区名称、产品类别和产品名称。
人员姓名、订单 ID、URL 和技术标识符保持不变。
不要更改任何公式、数字、日期、数量或价格。
保留原有工作表、单元格位置、合并单元格和格式,
包括字体、填充、边框、对齐方式和数字格式。
不要在工作簿中添加工作表、注释或说明。
""";

AIOptions options = new AIOptions { SpireToken = spireToken };

using Workbook workbook = new Workbook();
workbook.LoadFromFile(inputPath);

AIDocumentProcessor processor = workbook.AI(options);
AIResult result = processor.ExecuteInstruction(
workbook, instruction, outputPath);

if (!result.Success)
throw new InvalidOperationException(result.ErrorMessage);

Console.WriteLine($"翻译后的工作簿已保存至:{outputPath}");

步骤 3:对比输入和输出文件中公式的内容及其所在单元格。检查工作表名称、合并区域、数字格式和重要的单元格样式。再用 Excel 打开文件,查看译文是否因长度变化而无法在单元格中完整显示。指令描述的是预期结果,这些检查用于确认实际保存的内容。

当公式以文字作为判断条件时,这一点尤其重要。例如,=COUNTIF(C2:C17,"华东") 的表达式可以完全不变,但如果 C 列中的 华东 被翻译成 East,计算结果就可能改变。此时需要决定:这些源数据标签是保持中文,还是有意更新依赖它们的公式并进行测试。对于关键业务工作簿,这属于数据模型层面的决定。

这种方法适合需要处理多个工作簿,或将翻译功能加入应用程序的开发者。使用前需要完成环境配置、准备凭证,并针对实际处理的文件建立验证流程。

总结:如何选择翻译方法?

方法 易用程度 适用场景 译文如何返回 主要检查项
Google 表格公式 翻译单列容易,涉及多个区域时需要较多手工操作 少量、排列规整的文本列 复制结果并粘贴为原单元格的值 单元格对应关系及导出后的 Excel 兼容性
ChatGPT 最容易上手 文字分布在工作簿的不同位置 下载更新后的 .xlsx 文件 译文、公式和格式
C# AI Agent SDK 需要开发环境和配置 定期运行或批量处理 通过 C# 保存新工作簿 自动化对比与人工查看

对于内容少且排列整齐的工作表,翻译公式能让你直接控制每一步。如果希望减少手工操作,直接更新整个文件,ChatGPT 是实用的选择。需要在应用程序中或定期执行翻译时,C# 流程更合适。无论采用哪种方式,都应保留原文件,并检查译文和工作簿的计算结果。

常见问题

能否用 GOOGLETRANSLATE 翻译整个 Excel 工作簿?

不能只靠一个公式完成。GOOGLETRANSLATE 只翻译传入的文字,通常是某个单元格的内容。你可以向下填充公式来翻译一列,但仍需处理其他列、表头和工作表,并将检查后的译文放回正确的单元格。如果文字分布零散,使用 ChatGPT 或 C# 可能更省事。

翻译单元格文字后,所有公式都能正常计算吗?

保持公式表达式不变是必要的,但还不够。例如,=COUNTIF(C2:C17,"华东") 依赖特定的中文标签;如果 C 列的值被译为 East,其结果就会变化。除了检查公式文本,还要检查计算结果,尤其是查找公式、条件计数以及引用文本标签的公式。

将译文粘贴为值,会保留原单元格格式吗?

将内容以仅粘贴值的方式写入现有单元格,通常会保留这些单元格的格式。但仍需检查较长的英文译文是否显示不全,或在视觉上溢出到相邻单元格。如果曾在 Google 表格中编辑工作簿,也要用 Excel 检查导出的 .xlsx 文件。

ChatGPT 或 AI Agent 能保证复杂的 Excel 功能完好无损吗?

不能保证。对于包含宏、数据透视表、图表、外部链接或复杂格式的工作簿,需要在翻译前后逐项核对。保留原文件,并在使用译后版本前测试重要的计算结果。