BookTranslator
BookTranslator

Cum să traduci o foaie de calcul Excel fără a strica formulele sau listele derulante

Găsește textul pe care un traducător celulă cu celulă îl omite într-un fișier .xlsx (text din formule, text formatat, linkuri, grafice, macrocomenzi), corectează listele derulante și codurile pe care le poate strica și verifică rezultatul cu un script gratuit și un registru de test.

BookTranslator

BookTranslator Team

15 min de citit

Pentru a traduce un întreg registru Excel, încarcă fișierul .xlsx într-un traducător de documente în loc să traduci celulele una câte una. Comanda Review > Translate din Excel funcționează pe textul pe care îl selectezi (Microsoft Support), ceea ce este potrivit pentru o etichetă și lent pentru o listă de prețuri. Un traducător de fișiere citește fiecare celulă cu text, o traduce și o scrie înapoi la aceeași adresă, astfel încât formulele, numerele și datele rămân unde erau.

Ceea ce nu îți spune este ce text nu a citit niciodată. Textul tastat în interiorul unei formule, o celulă cu un singur cuvânt îngroșat, un link, o notă, un titlu de grafic: într-o traducere celulă cu celulă, toate acestea pot reveni în limba originală. Și două lucruri se pot strica: o listă derulantă ale cărei valori permise nu au fost traduse și un cod de produs care a fost tradus.

Am creat un registru de test cu două foi, cu text în fiecare dintre acele locuri, am scris un verificator gratuit care listează unde se află textul și am rulat registrul printr-o reproducere locală a procesării foilor de calcul pe care o folosește BookTranslator. Acest ghid arată ce a revenit, ce trebuie modificat înainte de încărcare și cum să verifici fișierul tradus.

Răspuns rapid: Ce se traduce într-un registru

Unde se află textulExemplu din testul nostruTradus de BookTranslator?Ce trebuie făcut
Celule cu text simplu, inclusiv rândurile de antet"Caiet albastru", "Preț"DaNimic
Numere, date, valori booleene4.5, 2026-10-30Lăsate așa cum erauVerifică formatele numerice pentru piața țintă
Formule=C2*D2Lăsate așa cum erauNimic
Text în interiorul unei formule=IF(D2>5,"In stock","Low stock")NuMută cuvintele în celule (vezi Pasul 2)
Celulă cu formatare mixtă"Ediție limitată stilou"Nu, întreaga celulă este omisăȘtergeți mai întâi formatarea sau traduceți manual
Celule cu hyperlink"Pagină produs"NuEditați textul linkului după traducere
Valoare dintr-o celulă cu listă derulantă"Papetărie"Da, dar lista derulantă nu esteCorectați lista sau celula nu mai este validă
Coduri cu litere"A-77", "B-09"Trimise către traducătorVerificați-le după traducere
Coduri doar cu cifre sau simboluri"00123"Lăsate așa cum erauNimic
Note și comentarii"Verificați numele furnizorului înainte de lansare"NuTraduceți manual sau ștergeți-le
Nume de foi și intervale denumite"Produse", PriceRangeNu, astfel încât formulele dintre foi să funcționeze în continuareRedenumiți foile manual doar dacă este absolut necesar, după ce verificați formulele
Grafice și macrocomenziUn grafic cu bare, un proiect VBAEliminate din fișierul tradus în testul nostruPăstrați originalul, reconstruiți după (vezi mai jos)

Fișierele mai vechi .xls nu sunt acceptate. Deschideți-le în Excel și salvați-le mai întâi ca .xlsx. Fișierele .xlsm cu macrocomenzi sunt acceptate, dar citiți secțiunea despre macrocomenzi înainte de a încărca unul: fișierul tradus nu are macrocomenzi, iar dacă descărcarea se termină tot în .xlsm, redenumiți-o în .xlsx înainte de a o deschide.

Pasul 1: Rulați verificatorul pe registrul de lucru

Descărcați check_xlsx_text.py și rulați-l pe fișierul dvs.:

python3 check_xlsx_text.py "Price list.xlsx"

Necesită doar Python 3 și citește fișierul fără a-l modifica. Iată rezumatul pentru registrul de lucru de probă:

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

Sub numărători, fiecare element este listat cu foaia și celula sa, cum ar fi Products!E2 formula text 'In stock'. Folosiți această listă ca listă de sarcini pentru Pasul 2. Dacă registrul dvs. de lucru are grafice, casete de text, tabele pivot sau un proiect de macrocomenzi, acestea apar și ele în numărători.

README descrie registrul de lucru de probă, listează hash-urile fișierelor și linkurile către scripturile care îl construiesc, astfel încât să puteți repeta testul.

Ce s-a întâmplat cu registrul nostru de lucru de probă

Am rulat registrul de lucru de probă prin codul folosit de handlerul de foi de calcul al BookTranslator, reprodus local pe 2026-11-01 cu aceeași bibliotecă (ExcelJS 4.4.0). În loc de o traducere reală, am folosit un substituent care adaugă „[DE]” în fața textului fiecărei celule. Astfel, modelul lingvistic este exclus din test, iar rezultatele arată doar ce trimite, păstrează și elimină manipularea fișierului.

Handlerul citește fiecare foaie celulă cu celulă. Trimite o celulă spre traducere doar dacă celula conține o valoare text simplă și omite orice text format doar din cifre, punctuație și simboluri. Tot restul din grila de celule este copiat neschimbat. BookTranslator returnează apoi două fișiere: un registru de lucru tradus și un registru de lucru bilingv.

Registrul de lucru tradus

Acesta este fișierul de utilizat. Toate cele 6 formule, cele 7 numere și date, formatele de monedă și dată, celulele îmbinate, nota, regula de listă derulantă și intervalul numit au revenit neschimbate. Cele 9 celule de antet și celelalte celule cu text simplu au fost traduse pe loc. Trei rezultate necesită atenție:

Textul din interiorul formulelor rămâne în limba sursă. Coloana Status folosea =IF(D2>5,"In stock","Low stock"). O formulă nu este o celulă text, așa că handlerul nu o citește niciodată, iar „In stock” rămâne în engleză în fiecare rând. Același lucru se aplică textului unit cu & sau CONCAT și textului din interiorul HYPERLINK.

O valoare tradusă a listei derulante nu mai corespunde listei sale. Celula H2 avea o listă derulantă care permitea „Stationery, Office, Art”. Valoarea celulei a fost tradusă, dar lista este stocată în regula de validare, nu într-o celulă, așa că nu a fost tradusă. Modul de comparare al verificatorului nostru a raportat astfel:

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']

Excel păstrează o valoare care încalcă regula sa de validare, dar următoarea persoană care deschide lista derulantă vede doar opțiunile vechi, iar Date > Circle Invalid Data va semnala celula.

Codurile cu litere sunt trimise traducătorului. „00123” a fost omis pentru că conține doar cifre. „A-77” și „B-09” au fost trimise, pentru că conțin o literă. Dacă un cod revine neschimbat depinde apoi de model; nimic din manipularea fișierului nu îl protejează. Un SKU care revine ca „A-77-Artikel” strică fiecare căutare care îl folosește.

Registrul de lucru bilingv

Fișierul bilingv inserează o coloană de traducere în dreapta fiecărei coloane care a avut cel puțin o celulă tradusă, cu anteturi precum „Name (Translated)”. Mută valorile celulelor în noile coloane, dar nu mută formatele celulelor și nu actualizează formulele. În testul nostru:

  • formatul de preț $#,##0.00 a rămas în coloana C, care acum conține nume de produse, în timp ce prețurile s-au mutat în coloana E fără el;
  • formatul de dată a rămas în coloana G, care acum conține cantitatea, astfel încât o cantitate de 10 a fost afișată ca dată;
  • =C2*D2 s-a mutat în coloana K, dar încă indica spre C2 și D2, care acum conțin numele produsului și traducerea acestuia, așa că nu mai poate returna 45;
  • pe foaia Rezumat, =SUM(Products!F2:F4) aduna acum o coloană de traducere goală.

Așadar, registrul de lucru bilingv este pentru a citi originalul și traducerea alături, nu pentru calcule. Nu îl editați și nu copiați formule din el.

Grafice și macrocomenzi

Într-o copie separată a registrului de lucru, am adăugat un grafic și un proiect de macrocomenzi, stocate așa cum le stochează Excel. Niciunul nu se afla în fișierul tradus sau în cel bilingv. ExcelJS citește și scrie foi de lucru, stiluri, text partajat, imagini, tabele și comentarii și nu are cod pentru părțile de grafic sau pentru proiectul VBA, așa că le omite la salvare. Același cod nu are nimic pentru tabelele pivot, așa că așteptați-vă ca și acestea să fie eliminate, deși nu am testat unul. De asemenea, handlerul salvează rezultatul ca fișier .xlsx, care nu poate conține macrocomenzi.

Încă o limitare a testului: am construit registrul de lucru eșantion cu ExcelJS însuși, care este cazul cel mai prietenos pentru păstrarea formatelor, îmbinărilor și regulilor de validare. Un registru de lucru salvat de Excel poate conține funcționalități pe care ExcelJS nu le modelează, așa că rulați pasul de comparare de mai jos pe propriul fișier în loc să presupuneți același rezultat curat.

Pasul 2: Pregătiți registrul de lucru înainte de încărcare

Lucrați pe o copie. Verificatorul vă spune ce celule să modificați.

  1. Mutați textul formulelor în celule. Puneți cuvintele într-o foaie mică „Etichete” și îndreptați formula spre ele: =IF(D2>5,Labels!$A$1,Labels!$A$2). Celulele cu etichete sunt text simplu, așa că sunt traduse, iar fiecare formulă preia traducerea. Această singură modificare rezolvă de obicei majoritatea numărului de „text din formule”, deoarece aceeași expresie tinde să se repete pe o coloană întreagă.
  2. Mutați listele derulante în celule. În Date > Validare date, schimbați Sursa dintr-o listă tastată (Stationery,Office,Art) într-un interval din foaia Etichete (=Labels!$B$1:$B$3). Valorile listei sunt apoi traduse împreună cu celulele care le folosesc. Verificați câteva celule după aceea: lista derulantă acceptă valoarea tradusă doar dacă modelul a tradus „Stationery” la fel în ambele locuri.
  3. Ștergeți formatarea mixtă. O celulă cu un singur cuvânt aldine sau colorat este stocată ca fragmente formatate și este omisă în întregime. Selectați celula și alegeți Home > Clear > Clear Formats, sau retastați-o, apoi reaplicați aldinele după traducere. Dacă aveți multe astfel de celule, notați-le mai întâi.
  4. Decideți ce faceți cu notele și comentariile. Acestea nu sunt traduse. Ștergeți notele de revizuire pe care nu doriți să le trimiteți unui serviciu de traducere și traduceți restul manual.
  5. Salvați registrele de lucru cu macrocomenzi ca .xlsx. Păstrați fișierul .xlsm ca master. Traduceți o copie .xlsx, apoi fie copiați coloanele de text traduse înapoi în master (Paste Special > Values, doar coloanele de text, ca să nu suprascrieți formulele), fie exportați modulele VBA și importați-le în fișierul tradus.
  6. Lăsați graficele pentru mai târziu. Un grafic are puțin text: un titlu, titluri de axe și o legendă care de obicei provine din celulele de antet. Adesea este mai rapid să reconstruiți graficul în registrul de lucru tradus din aceleași intervale sau să lipiți coloanele de text traduse înapoi în registrul de lucru original, astfel încât graficele și tabelele pivot să se actualizeze singure.

Pasul 3: Traduceți întregul fișier

Încărcați fișierul .xlsx pe pagina de traducere documente, alegeți limba țintă și verificați prețul afișat înainte de a plăti. Încărcarea întregului fișier traduce fiecare celulă cu text de pe fiecare foaie într-o singură sarcină, ceea ce facilitează păstrarea aceluiași nume de produs în rândul 3 și în rândul 3.000. Ghidul nostru despre crearea unui glosar de traducere explică cum să fixați termenii care nu trebuie să varieze.

Când sarcina se termină, pagina Istoric oferă ambele descărcări. Folosiți registrul de lucru tradus. Deschideți registrul de lucru bilingv doar pentru a revizui formularea cu cineva care citește ambele limbi.

Dacă lucrați în Google Sheets, există două alte căi. Filonul Documente al Google Translate acceptă fișiere .xlsx de până la 10 MB (Ajutor Google Translate); ghidul nostru de traducere Google Docs compară opțiunile sale. Iar Sheets are o funcție GOOGLETRANSLATE(text, source_language, target_language) (Ajutor Google Docs Editors) pe care o puteți completa pe o coloană nouă lângă sursă. Este convenabil pentru o coloană de etichete scurte, dar rezultatele sunt formule, așa că lipiți-le ca valori înainte de a partaja foaia. DeepL traduce și documente; vedeți ce înseamnă limitele sale pentru documente în practică. Indiferent ce utilizați, rulați mai întâi verificatorul pe sursă: textul din formule, linkuri și grafice se află în aceleași locuri indiferent de instrumentul care citește fișierul.

Pasul 4: Verificați registrul de lucru tradus

  1. Rulați modul de comparare. Puneți fișierul sursă și cel tradus alături:

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

    Se verifică dacă fiecare formulă, număr și dată este neschimbat, dacă codurile cu litere au revenit exact așa cum erau și dacă fiecare valoare a listei derulante se află în lista sa. Folosiți-l doar pe registrul de lucru tradus. Deoarece fișierul bilingv deplasează coloanele, aproape fiecare celulă ar fi raportată.

  2. Recalculați. Dacă o formulă afișează încă textul vechi după ce ați corectat etichetele, apăsați F9 (sau Formulas > Calculate Now).

  3. Traduceți resturile. Folosiți lista verificatorului de la Pasul 1: textul linkurilor, notele, titlurile graficelor și orice celule pe care le-ați curățat de formatare.

  4. Căutați textul trunchiat. Traducerile sunt adesea mai lungi decât originalul, iar șirurile scurte cresc cel mai mult. W3C citează ghidurile IBM care estimează o creștere medie de la engleză în limbile europene de 200–300% pentru textele de până la 10 caractere (W3C). Anteturile coloanelor sunt scurte, așa că lărgiți coloanele sau activați Wrap Text acolo unde sunt tăiate.

  5. Verificați afișarea numerelor și a datelor. Valorile nu au fost modificate, dar „4.50” poate trebui să apară ca „4,50” pentru un cititor german. Acesta este un format de celulă sau o setare regională, nu o traducere.

  6. Nu „reparați” numele funcțiilor. Dacă Excelul francez al unui coleg afișează SOMME în loc de SUM, acesta este Excelul care își afișează propriile nume de funcții localizate; formula este aceeași.

  7. Setați foile de la dreapta la stânga. Pentru arabă, ebraică, persană sau urdu, activați Page Layout > Sheet Right-to-Left și verificați alinierea celulelor.

  8. Rugați un vorbitor fluent să o revizuiască dacă ajunge la clienți, cum ar fi o listă de prețuri sau un catalog de produse. O traducere automată este o primă versiune bună, nu una finală.

Fișiere CSV și TSV

Un fișier .csv nu are formule, formate sau liste derulante, așa că majoritatea problemelor de mai sus dispar. Trei lucruri sunt diferite:

  • Rândul de antet nu este tradus. Instrumentul tratează primul rând ca antet și traduce doar rândurile de date. Traduceți anteturile manual sau copiați-le într-un rând de date înainte de încărcare și mutați-le înapoi după aceea.
  • O coloană este tradusă ca un întreg. Dacă orice celulă dintr-o coloană conține o literă, fiecare celulă din acea coloană care conține o literă este trimisă, inclusiv codurile. Modul de comparare citește doar .xlsx, așa că verificați manual o coloană de coduri CSV: copiați-o din ambele fișiere într-o singură foaie și comparați cele două coloane cu =EXACT(A2,B2).
  • Un CSV revine separat prin virgule. Indiferent de delimitatorul folosit de sursă, CSV-ul tradus folosește virgule; un fișier .tsv își păstrează tabulatorii. În testul nostru, un CSV separat prin punct și virgulă a revenit separat prin virgule, cu virgule zecimale precum „4,50” păstrate între ghilimele. Fișierul este UTF-8 fără marcă de ordine a octeților. Microsoft spune că Excel deschide un CSV UTF-8 în mod normal atunci când are această marcă și, în caz contrar, recomandă importarea lui cu Data > Get Data > From Text/CSV (Microsoft Support). Dacă faceți dublu clic pe fișier și vedeți accente deformate, importați-l în acest mod.

Dacă datele dvs. se află într-un registru de lucru cu formule, traduceți fișierul .xlsx. Exportarea în CSV pentru a-l traduce aruncă toate formulele.

Probleme frecvente

ProblemăCauză probabilăCe trebuie făcut
O întreagă coloană încă afișează „In stock”Cuvintele se află într-o formulă IFMutați-le în celule de etichetă și îndreptați formula către ele
O listă derulantă respinge valoarea tradusăValorile permise sunt introduse direct în regula de validareSchimbați Sursa regulii într-un interval de celule și traduceți intervalul
Un cod de produs s-a modificatConține litere, așa că a fost trimis la traducătorRemediați-l din sursă; rulați modul de comparare la fiecare livrare
O celulă nu a fost tradusă delocAre formatare mixtă sau este un linkȘtergeți formatarea sau editați textul linkului, apoi retraduceți sau corectați manual
Graficul sau macrocomenzile au dispărutBiblioteca folosită pentru rescrierea fișierului nu le salveazăTraduceți o copie .xlsx și mutați textul tradus înapoi în original
Totalurile sunt greșite în fișierul bilingvColoanele adăugate deplasează valorile, dar nu formulele sau formateleFolosiți registrul de lucru tradus pentru orice calcul
Diacriticele apar distorsionate într-un CSV tradusExcel a ghicit codificarea greșităImportați-l cu Date > Obținere date > Din text/CSV
Încărcarea este refuzatăFișierul este .xls sau necesită o parolă pentru deschidereSalvați-l ca un .xlsx normal, fără parolă de deschidere (protecția foii singură este acceptabilă)

Aceeași idee se aplică și prezentărilor: o prezentare PowerPoint păstrează textul și în locuri pe care un traducător le omite, iar verificatorul pentru acel articol funcționează la fel ca acesta.

Articole asociate