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.

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ă textul | Exemplu din testul nostru | Tradus de BookTranslator? | Ce trebuie făcut |
|---|---|---|---|
| Celule cu text simplu, inclusiv rândurile de antet | "Caiet albastru", "Preț" | Da | Nimic |
| Numere, date, valori booleene | 4.5, 2026-10-30 | Lăsate așa cum erau | Verifică formatele numerice pentru piața țintă |
| Formule | =C2*D2 | Lăsate așa cum erau | Nimic |
| Text în interiorul unei formule | =IF(D2>5,"In stock","Low stock") | Nu | Mută 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" | Nu | Editați textul linkului după traducere |
| Valoare dintr-o celulă cu listă derulantă | "Papetărie" | Da, dar lista derulantă nu este | Corectați lista sau celula nu mai este validă |
| Coduri cu litere | "A-77", "B-09" | Trimise către traducător | Verificați-le după traducere |
| Coduri doar cu cifre sau simboluri | "00123" | Lăsate așa cum erau | Nimic |
| Note și comentarii | "Verificați numele furnizorului înainte de lansare" | Nu | Traduceți manual sau ștergeți-le |
| Nume de foi și intervale denumite | "Produse", PriceRange | Nu, astfel încât formulele dintre foi să funcționeze în continuare | Redenumiți foile manual doar dacă este absolut necesar, după ce verificați formulele |
| Grafice și macrocomenzi | Un grafic cu bare, un proiect VBA | Eliminate din fișierul tradus în testul nostru | Pă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.00a 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*D2s-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.
- 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ă. - 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. - Ș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.
- 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.
- Salvați registrele de lucru cu macrocomenzi ca
.xlsx. Păstrați fișierul.xlsmca 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. - 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
-
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ă.
-
Recalculați. Dacă o formulă afișează încă textul vechi după ce ați corectat etichetele, apăsați F9 (sau Formulas > Calculate Now).
-
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.
-
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.
-
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.
-
Nu „reparați” numele funcțiilor. Dacă Excelul francez al unui coleg afișează
SOMMEîn loc deSUM, acesta este Excelul care își afișează propriile nume de funcții localizate; formula este aceeași. -
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.
-
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ă IF | Mutaț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 validare | Schimbați Sursa regulii într-un interval de celule și traduceți intervalul |
| Un cod de produs s-a modificat | Conține litere, așa că a fost trimis la traducător | Remediați-l din sursă; rulați modul de comparare la fiecare livrare |
| O celulă nu a fost tradusă deloc | Are 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ărut | Biblioteca 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 bilingv | Coloanele adăugate deplasează valorile, dar nu formulele sau formatele | Folosiți registrul de lucru tradus pentru orice calcul |
| Diacriticele apar distorsionate într-un CSV tradus | Excel 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 deschidere | Salvaț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





