BookTranslator
BookTranslator

Como traduzir uma folha de cálculo Excel sem quebrar fórmulas ou listas pendentes

Descubra o texto que um tradutor célula a célula ignora num ficheiro .xlsx (texto de fórmulas, texto formatado, ligações, gráficos, macros), corrija as listas pendentes e os códigos que podem ser afetados e verifique o resultado com um script gratuito e um livro de teste.

BookTranslator

BookTranslator Team

16 min de leitura

Para traduzir um livro de Excel completo, carregue o ficheiro .xlsx num tradutor de documentos em vez de traduzir as células uma a uma. O comando Rever > Traduzir do próprio Excel funciona sobre o texto que seleciona (Suporte da Microsoft), o que é adequado para uma etiqueta e lento para uma lista de preços. Um tradutor de ficheiros lê todas as células de texto, traduz e escreve de volta no mesmo endereço, pelo que as fórmulas, os números e as datas permanecem onde estavam.

O que não lhe diz é que texto nunca foi lido. Texto escrito dentro de uma fórmula, uma célula com uma palavra a negrito, uma ligação, uma nota, o título de um gráfico: numa tradução célula a célula, tudo isto pode voltar no idioma original. E duas coisas podem quebrar-se: uma lista pendente cujos valores permitidos não foram traduzidos e um código de produto que foi.

Criámos um livro de teste com duas folhas, com texto em cada um desses locais, escrevemos um verificador gratuito que lista onde o texto se encontra e executámos o livro através de uma reprodução local do tratamento de folhas de cálculo que o BookTranslator utiliza. Este guia mostra o que foi devolvido, o que alterar antes de carregar e como verificar o ficheiro traduzido.

Resposta rápida: o que é traduzido num livro

Onde está o textoExemplo do nosso testeTraduzido pelo BookTranslator?O que fazer
Células de texto simples, incluindo linhas de cabeçalho"Caderno azul", "Preço"SimNada
Números, datas, booleanos4.5, 2026-10-30Mantidos como estavamVerifique os formatos de número para o mercado de destino
Fórmulas=C2*D2Mantidas como estavamNada
Texto dentro de uma fórmula=IF(D2>5,"In stock","Low stock")NãoMova as palavras para células (ver Passo 2)
Célula com formatação mista"Edição limitada de caneta"Não, a célula inteira é ignoradaLimpe primeiro a formatação ou traduza-a manualmente
Células com hiperligações"Página do produto"NãoEdite o texto da ligação após a tradução
Valor dentro de uma célula com lista pendente"Papelaria"Sim, mas a lista pendente nãoCorrija a lista ou a célula deixa de ser válida
Códigos com letras"A-77", "B-09"Enviados para o tradutorVerifique-os após a tradução
Códigos apenas com dígitos ou símbolos"00123"Mantidos como estavamNada
Notas e comentários"Verificar o nome do fornecedor antes da libertação"NãoTraduza manualmente ou elimine-os
Nomes de folhas e intervalos com nome"Produtos", PriceRangeNão, para que as fórmulas entre folhas continuem a funcionarMude o nome das folhas manualmente apenas se for necessário, depois de verificar as fórmulas
Gráficos e macrosUm gráfico de barras, um projeto VBARemovidos do ficheiro traduzido no nosso testeMantenha o original, recrie depois (ver abaixo)

Os ficheiros .xls mais antigos não são aceites. Abra-os no Excel e guarde-os como .xlsx primeiro. Os ficheiros .xlsm com macros são aceites, mas leia a secção sobre macros antes de carregar um: o ficheiro traduzido não tem macros e, se a transferência ainda terminar em .xlsm, mude o nome para .xlsx antes de o abrir.

Passo 1: Execute o verificador no seu livro

Transfira check_xlsx_text.py e execute-o no seu ficheiro:

python3 check_xlsx_text.py "Price list.xlsx"

Só precisa de Python 3 e lê o ficheiro sem o alterar. Aqui está o resumo do nosso livro de exemplo:

Counts by location:
  cell         code, ID or address        2
  cell         link text                  1
  cell         mixed formatting           1
  cell         plain text                 15
  comments     comment or note text       1
  dropdown     list of allowed values     1
  formula text text inside a formula      6
  sheet        sheet name                 2
  workbook     defined name               1

Plain text cells (translated by a cell-by-cell translator): 15
Items that need a decision before you upload: 12

Abaixo das contagens, lista cada item com a respetiva folha e célula, como Products!E2 formula text 'In stock'. Use essa lista como a sua lista de tarefas para o Passo 2. Se o seu livro tiver gráficos, caixas de texto, tabelas dinâmicas ou um projeto de macros, também aparecem nas contagens.

O README descreve o livro de exemplo, lista os hashes dos ficheiros e liga aos scripts que o constroem, para que possa repetir o teste.

O que aconteceu ao nosso livro de teste

Executámos o livro de exemplo através do código que o processador de folhas de cálculo do BookTranslator utiliza, reproduzido localmente em 2026-11-01 com a mesma biblioteca (ExcelJS 4.4.0). Em vez de uma tradução real, usámos um marcador que adiciona "[DE]" à frente do texto de cada célula. Isso mantém o modelo de linguagem fora do teste, para que os resultados mostrem apenas o que o processamento do ficheiro envia, mantém e descarta.

O processador lê cada folha célula a célula. Só envia uma célula para tradução se esta contiver um valor de texto simples, e ignora qualquer texto composto apenas por dígitos, pontuação e símbolos. Tudo o resto na grelha de células é copiado sem alterações. O BookTranslator devolve então dois ficheiros: um livro traduzido e um livro bilingue.

O livro traduzido

Este é o ficheiro a utilizar. As 6 fórmulas, os 7 números e datas, os formatos de moeda e data, as células unidas, a nota, a regra de lista pendente e o intervalo nomeado voltaram sem alterações. As 9 células de cabeçalho e as outras células de texto simples foram traduzidas no local. Três resultados requerem atenção:

O texto dentro das fórmulas permanece no idioma de origem. A coluna Estado usava =IF(D2>5,"In stock","Low stock"). Uma fórmula não é uma célula de texto, por isso o processador nunca a lê, e "In stock" permanece em inglês em todas as linhas. O mesmo se aplica ao texto unido com & ou CONCAT, e ao texto dentro de HYPERLINK.

Um valor de lista pendente traduzido deixa de corresponder à sua lista. A célula H2 tinha uma lista pendente que permitia "Stationery, Office, Art". O valor da célula foi traduzido, mas a lista está armazenada na regra de validação, não numa célula, por isso não foi. O modo de comparação do nosso verificador reportou-o assim:

Problems: 3
  Products!A3: code changed: 'A-77' -> '[DE] A-77'
  Products!A4: code changed: 'B-09' -> '[DE] B-09'
  Products!H2: '[DE] Stationery' is not in its dropdown list ['Art', 'Office', 'Stationery']

O Excel mantém um valor que viola a sua regra de validação, mas a próxima pessoa a abrir a lista pendente vê apenas as opções antigas, e Dados > Rodear dados inválidos sinalizará a célula.

Os códigos com letras são enviados para o tradutor. "00123" foi ignorado porque contém apenas dígitos. "A-77" e "B-09" foram enviados, porque contêm uma letra. Se um código volta inalterado depende então do modelo; nada no processamento do ficheiro o protege. Um SKU que volte como "A-77-Artikel" quebra todas as pesquisas que o utilizem.

O livro bilingue

O ficheiro bilingue insere uma coluna de tradução à direita de cada coluna que tinha pelo menos uma célula traduzida, com cabeçalhos como "Name (Translated)". Move os valores das células para as novas colunas, mas não move os formatos das células nem atualiza as fórmulas. No nosso teste:

  • o formato de preço $#,##0.00 permaneceu na coluna C, que agora contém nomes de produtos, enquanto os preços passaram para a coluna E sem ele;
  • o formato de data manteve-se na coluna G, que agora contém a quantidade, pelo que uma quantidade de 10 era apresentada como uma data;
  • =C2*D2 passou para a coluna K mas continuava a apontar para C2 e D2, que agora contêm o nome do produto e a respetiva tradução, pelo que já não consegue devolver 45;
  • na folha Summary, =SUM(Products!F2:F4) passou a somar uma coluna de tradução vazia.

Assim, o livro bilingue serve para ler o original e a tradução lado a lado, não para calcular. Não o edite nem copie fórmulas a partir dele.

Gráficos e macros

Numa cópia separada do livro, adicionámos um gráfico e um projeto de macro, guardados da forma como o Excel os armazena. Nenhum deles estava no ficheiro traduzido ou no bilingue. O ExcelJS lê e escreve folhas de cálculo, estilos, texto partilhado, imagens, tabelas e comentários, e não tem código para partes de gráficos ou para o projeto VBA, pelo que os omite ao guardar. O mesmo código não tem nada para tabelas dinâmicas, pelo que é de esperar que estas também sejam eliminadas, embora não tenhamos testado nenhuma. O processador guarda ainda o resultado como um ficheiro .xlsx, que não suporta macros.

Mais um limite do teste: construímos o livro de exemplo com o próprio ExcelJS, que é o caso mais favorável para preservar formatos, células unidas e regras de validação. Um livro guardado pelo Excel pode conter funcionalidades que o ExcelJS não modela, por isso execute o passo de comparação abaixo no seu próprio ficheiro em vez de assumir o mesmo resultado impecável.

Passo 2: Prepare o Livro Antes de Carregar

Trabalhe numa cópia. O verificador indica-lhe quais as células a alterar.

  1. Mova o texto das fórmulas para células. Coloque as palavras numa pequena folha "Labels" e aponte a fórmula para elas: =IF(D2>5,Labels!$A$1,Labels!$A$2). As células de etiqueta são texto simples, pelo que são traduzidas, e todas as fórmulas recebem a tradução. Esta única alteração costuma resolver a maior parte da contagem de "texto em fórmulas", porque a mesma frase tende a repetir-se ao longo de uma coluna inteira.
  2. Mova as listas pendentes para células. Em Dados > Validação de Dados, altere a Origem de uma lista escrita (Stationery,Office,Art) para um intervalo na folha Labels (=Labels!$B$1:$B$3). Os valores da lista passam então a ser traduzidos juntamente com as células que os utilizam. Verifique depois algumas células: a lista pendente só aceita o valor traduzido se o modelo traduziu "Stationery" da mesma forma nos dois locais.
  3. Limpe a formatação mista. Uma célula com uma palavra a negrito ou colorida é armazenada como sequências formatadas e ignorada por completo. Selecione a célula e escolha Base > Limpar > Limpar Formatações, ou volte a escrevê-la, e reaplique o negrito após a tradução. Se tiver muitas destas, anote-as primeiro.
  4. Decida o que fazer com notas e comentários. Não são traduzidos. Elimine as notas de revisão que não quer enviar para um serviço de tradução e traduza as restantes à mão.
  5. Guarde os livros com macros como .xlsx. Mantenha o seu .xlsm como original. Traduza uma cópia .xlsx e, em seguida, copie as colunas de texto traduzidas de volta para o original (Colar Especial > Valores, apenas colunas de texto, para não substituir fórmulas) ou exporte os módulos VBA e importe-os para o ficheiro traduzido.
  6. Deixe os gráficos para depois. Um gráfico tem pouco texto: um título, títulos dos eixos e uma legenda que normalmente vem das células de cabeçalho. Muitas vezes é mais rápido reconstruir o gráfico no livro traduzido a partir dos mesmos intervalos, ou colar as colunas de texto traduzidas de volta no livro original para que os seus gráficos e tabelas dinâmicas se atualizem sozinhos.

Passo 3: Traduza o Ficheiro Inteiro

Carregue o .xlsx na página do tradutor de documentos, escolha o idioma de destino e verifique o preço apresentado antes de pagar. O carregamento do ficheiro inteiro traduz todas as células de texto de todas as folhas numa única tarefa, o que facilita manter o mesmo nome de produto na linha 3 e na linha 3 000. O nosso guia sobre criar um glossário de tradução explica como fixar termos que não devem variar.

Quando a tarefa terminar, a página Histórico disponibiliza ambas as transferências. Utilize o livro traduzido. Abra o livro bilingue apenas para rever a redação com alguém que leia ambos os idiomas.

Se trabalha no Google Sheets, existem duas outras vias. O separador Documentos do Google Translate aceita ficheiros .xlsx até 10 MB (Ajuda do Google Translate); o nosso guia de tradução do Google Docs compara as suas opções. E o Sheets tem uma função GOOGLETRANSLATE(text, source_language, target_language) (Ajuda dos Editores do Google Docs) que pode preencher numa nova coluna ao lado da origem. Isso é conveniente para uma coluna de etiquetas curtas, mas os resultados são fórmulas, pelo que deve colá-las como valores antes de partilhar a folha. O DeepL também traduz documentos; veja o que os seus limites de documentos significam na prática. Independentemente do que usar, execute primeiro o verificador no original: o texto dentro de fórmulas, ligações e gráficos está nos mesmos locais, independentemente da ferramenta que lê o ficheiro.

Passo 4: Verifique o Livro Traduzido

  1. Execute o modo de comparação. Coloque o original e o ficheiro traduzido lado a lado:

    python3 check_xlsx_text.py --compare "Price list.xlsx" "Price list (translated).xlsx"
    

    Verifica que todas as fórmulas, números e datas estão inalterados, que os códigos com letras regressaram exatamente como estavam e que todos os valores das listas pendentes constam da respetiva lista. Utilize-o apenas no livro traduzido. Como o ficheiro bilingue desloca colunas, quase todas as células seriam assinaladas.

  2. Recalcule. Se uma fórmula ainda mostrar o texto antigo depois de corrigir as etiquetas, prima F9 (ou Fórmulas > Calcular Agora).

  3. Traduza o que resta. Utilize a lista do verificador do Passo 1: texto das ligações, notas, títulos de gráficos e quaisquer células cuja formatação tenha limpo.

  4. Procure texto cortado. As traduções são frequentemente mais longas do que o original, e as cadeias curtas são as que mais crescem. A W3C cita diretrizes da IBM que indicam que a expansão média do inglês para as línguas europeias é de 200–300% para texto até 10 caracteres (W3C). Os cabeçalhos das colunas são curtos, por isso alargue as colunas ou ative a opção Moldar Texto onde o texto ficar cortado.

  5. Verifique a apresentação de números e datas. Os valores não foram alterados, mas "4.50" pode ter de aparecer como "4,50" para um leitor alemão. Isso é um formato de célula ou uma definição regional, não uma tradução.

  6. Não "corrija" os nomes das funções. Se o Excel francês de um colega mostrar SOMME em vez de SUM, é o Excel a apresentar os seus próprios nomes de funções localizados; a fórmula é a mesma.

  7. Configure as folhas para escrita da direita para a esquerda. Para árabe, hebraico, persa ou urdu, ative Esquema de Página > Folha da Direita para a Esquerda e verifique o alinhamento das células.

  8. Peça a revisão a um leitor fluente se o documento se destinar a clientes, como uma lista de preços ou um catálogo de produtos. Uma tradução automática é um bom primeiro rascunho, não uma versão final.

Ficheiros CSV e TSV

Um ficheiro .csv não tem fórmulas, formatações nem listas pendentes, por isso a maioria dos problemas acima desaparece. Há três diferenças:

  • A linha de cabeçalho não é traduzida. O processador trata a primeira linha como cabeçalhos e traduz apenas as linhas de dados. Traduza os cabeçalhos manualmente ou copie-os para uma linha de dados antes de carregar o ficheiro e volte a colocá-los no lugar depois.
  • Uma coluna é traduzida como um todo. Se alguma célula de uma coluna contiver uma letra, todas as células dessa coluna que contenham letras são enviadas, incluindo códigos. O modo de comparação só lê .xlsx, por isso verifique manualmente uma coluna de códigos CSV: copie-a de ambos os ficheiros para uma folha e compare as duas colunas com =EXACT(A2,B2).
  • Um CSV é devolvido separado por vírgulas. Independentemente do delimitador usado no original, o CSV traduzido usa vírgulas; um ficheiro .tsv mantém as tabulações. No nosso teste, um CSV separado por pontos e vírgulas foi devolvido separado por vírgulas, com as vírgulas decimais, como "4,50", mantidas entre aspas. O ficheiro é UTF-8 sem marca de ordem de bytes. A Microsoft afirma que o Excel abre normalmente um CSV UTF-8 quando este tem essa marca e, caso contrário, recomenda importá-lo através de Dados > Obter Dados > De Texto/CSV (Microsoft Support). Se fizer duplo clique no ficheiro e vir acentos corrompidos, importe-o dessa forma.

Se os seus dados estiverem num livro com fórmulas, traduza o .xlsx. Exportar para CSV para o traduzir elimina todas as fórmulas.

Problemas Comuns

ProblemaCausa provávelO que fazer
Uma coluna inteira continua a dizer "In stock"As palavras estão dentro de uma fórmula IFMova-as para células de etiqueta e aponte a fórmula para essas células
Uma lista pendente rejeita o valor traduzidoOs valores permitidos estão escritos na regra de validaçãoAltere a Origem da regra para um intervalo de células e traduza o intervalo
Um código de produto foi alteradoContém letras, por isso foi enviado para o tradutorCorrija-o a partir do original; execute o modo de comparação em cada entrega
Uma célula não foi traduzida de todoTem formatação mista ou é uma ligaçãoLimpe a formatação ou edite o texto da ligação e, em seguida, retraduza ou corrija manualmente
O gráfico ou as macros desapareceramA biblioteca usada para reescrever o ficheiro não os guardaTraduza uma cópia .xlsx e transfira o texto traduzido para o original
Os totais estão errados no ficheiro bilingueAs colunas adicionadas deslocam os valores, mas não as fórmulas nem os formatosUtilize o livro de trabalho traduzido para qualquer cálculo
Os acentos aparecem corrompidos num CSV traduzidoO Excel adivinhou a codificação erradaImporte-o com Dados > Obter Dados > De Texto/CSV
O carregamento é recusadoO ficheiro é .xls ou precisa de uma palavra-passe para abrirGuarde-o como um .xlsx normal sem palavra-passe de abertura (a proteção da folha por si só é suficiente)

A mesma ideia aplica-se a diapositivos: uma apresentação do PowerPoint também mantém texto em locais que um tradutor ignora, e o verificador para esse artigo funciona da mesma forma que este.

Publicações relacionadas