Acasă
» MS OFFICE
»
Cum se utilizează macrocomenzile ONLYOFFICE pentru a automatiza curățarea foilor de calcul
Cum se utilizează macrocomenzile ONLYOFFICE pentru a automatiza curățarea foilor de calcul
Curățarea foii de calcul este repetitivă: numele exportate ajung cu spații suplimentare, textul lipit conține spații nespărgătoare, iar formulele sau ID-urile pot fi deteriorate de înlocuiri generale. O macrocomandă ONLYOFFICE poate standardiza textul dintr-un interval definit, lăsând în același timp valorile numerice și celulele formulei intacte. Exemplul de mai jos tratează doar spațiile albe; eliminarea duplicatelor, conversia datelor și ștergerea rândurilor goale necesită reguli separate.
Documentația a fost verificată pe 6 octombrie 2026. Macrocomenzile ONLYOFFICE utilizează JavaScript cu API-ul Office JavaScript, nu Excel VBA. Documentația curentă a editorului deschide spațiul de lucru pentru macrocomenzi din Vizualizare → Macrocomenzi . Aspectul exact al barei de instrumente poate varia între edițiile desktop și cele găzduite.
Sarcini de curățare pe care le poate gestiona această macrocomandă
Exemplul elimină spațiile sau tabulatorii la început și la sfârșit, schimbă spațiile neseparatoare în spații obișnuite și restrânge spațiile sau tabulatorii repetate din interiorul textului. Omite formulele și valorile care nu sunt șiruri de caractere. Acest domeniu restrâns reduce șansa de a modifica datele, sumele sau celulele calculate în timpul pregătirii unui import recurent.
Problemă cu datele
Ce face eșantionul
Revizuire înainte de automatizare
Spații și tabulatori la început sau la sfârșit
Le elimină din celulele de text
De obicei, este sigur pentru nume și etichete, dar verificați câmpurile unde spațierea este semnificativă
Spații neseparabile
Le înlocuiește cu spații obișnuite
Util pentru textul web copiat; verificați la întâmplare câmpul sursă
Spații sau tabulatori repetate
Restrânge fiecare rundă la un singur spațiu
Nu utilizați pe text cu lățime fixă sau indentare intenționată
Formule, numere și valori booleene
Le lasă neschimbate
Verificați dacă celulele formulei se calculează în continuare după rulare
Rânduri duplicate, date, rânduri goale
Nu le schimbă
Definiți mai întâi regulile de afaceri; acestea nu sunt doar o curățare cosmetică.
1. Pregătiți o copie și definiți intervalul
Salvați o copie de lucru a foii de calcul înainte de a rula orice macrocomandă care modifică celulele. Identificați foaia de calcul și rândurile de date de curățat. În codul de mai jos, A2:D500este un interval exemplu: se presupune că rândul 1 conține anteturi, iar datele sunt așteptate în coloanele A până la D. Modificați această adresă pentru a se potrivi cu foaia dvs. de calcul. Utilizați un interval delimitat care acoperă înregistrările dorite și nu includeți note, formule sau coloane fără legătură.
O foaie de lucru mică oferă un exemplu delimitat; păstrați rândul de antet în afara intervalului de curățare.
Pentru un prim test, copiați câteva înregistrări reprezentative într-o foaie temporară sau duplicați fișierul și scurtați intervalul, cum ar fi [numele fișierului A2:D10]. Includeți exemple cu spații obișnuite, text lipit, celule goale și formule, astfel încât să puteți confirma modul în care macrocomanda tratează fiecare caz.
2. Deschideți editorul de macrocomenzi ONLYOFFICE
Deschideți foaia de calcul în Editorul de foi de calcul ONLYOFFICE și alegeți Vizualizare → Macrocomenzi . Creați o macrocomandă nouă în fereastra macrocomenzii sau selectați un modul nou, apoi dați-i un nume clar, cum ar fi CleanTextWhitespace. Ghidul oficial de introducere în macrocomenzile ONLYOFFICE documentează acest punct de intrare și controlul de rulare.
Panglica Vizualizare conține controlul Macrocomenzi utilizat pentru a deschide spațiul de lucru al macrocomenzilor.
Dacă macrocomenzile sunt dezactivate de setările editorului, consultați Setări → Setări avansate → Macrocomenzi . Opțiunile din documentele ONLYOFFICE pentru a dezactiva macrocomenzile, a afișa o notificare sau a le activa. Pentru un registru de lucru pe care nu l-ați creat, nu activați toate macrocomenzile la nivel global doar pentru a rula un singur script; inspectați codul și urmați politica organizației dvs.
3. Lipiți această macrocomandă delimitată, care acceptă formule
(function () {
var oSheet = Api.GetActiveSheet();
var oRange = oSheet.GetRange("A2:D500");
var nRows = oRange.GetRowsCount();
var nCols = oRange.GetColumnsCount();
for (var r = 1; r <= nRows; r++) {
for (var c = 1; c <= nCols; c++) {
var oCell = oRange.GetCells(r, c);
var sFormula = oCell.GetFormula();
// Do not replace formulas with their displayed results.
if (sFormula) {
continue;
}
var v = oCell.GetValue();
// Restrict this cleanup to text constants.
if (typeof v !== "string") {
continue;
}
var sClean = v
.replace(/\u00A0/g, " ")
.replace(/[ \t]+/g, " ")
.replace(/^[ \t]+|[ \t]+$/g, "");
// SetValue treats strings beginning with "=" as formulas.
if (sClean.charAt(0) === "=") {
continue;
}
if (sClean !== v) {
oCell.SetValue(sClean);
}
}
}
})();
Panoul de cod afișează intervalul și metodele de citire a celulelor utilizate de macrocomanda de curățare.
Contoarele de rânduri și coloane transmise GetCellssunt relative la intervalul selectat; exemplele API utilizează poziții numerotate pentru a accesa o celulă. Macrocomanda citește mai întâi formula fiecărei celule și o omite atunci când este prezentă o formulă. Apoi citește valoarea și editează doar șirurile care se modifică efectiv. Un șir care ar deveni o formulă cu semn egal după decupare este, de asemenea, omis deoarece SetValuepoate interpreta un semn egal la început ca o formulă.
Expresia „spații albe” lasă intenționat în pace sfârșiturile de linie. Nu modifică scrierea cu majuscule, punctuația, valorile numerice sau serialele de dată. Dacă sursa conține note pe mai multe linii, câmpuri cu lățime fixă sau identificatori cu spații speciale, testați acele coloane separat și ajustați politica în loc să aplicați o normalizare mai largă.
4. Executați o dată, apoi verificați rezultatul
Executați macrocomanda din editorul de macrocomandi. Deoarece aceasta actualizează celulele din intervalul selectat, verificați textul modificat în copia de lucru înainte de a salva sursa. Comparați câteva rânduri cu originalul, inclusiv primul și ultimul rând din interval. Confirmați că anteturile au rămas neatinse, formulele se calculează în continuare și celulele numerice, cum ar fi datele, moneda și ID-urile, nu s-au modificat.
Folosește foaia de lucru pentru a verifica la întâmplare rândurile reprezentative și a le compara cu copia nerezolvată.
Pentru o foaie mare, filtrați sau căutați spații suspecte înainte și după rulare și comparați numărul de rânduri. Macrocomanda nu șterge rânduri, nu deduplică înregistrările, nu convertește datele și nu completează spațiile libere, așa că aceste verificări ar trebui să se concentreze pe valorile text. Dacă aveți nevoie de o pistă de audit vizibilă, adăugați o coloană separată de revizuire sau copiați rezultatele curățate într-o foaie de testare, în loc să scrieți mesaje de stare într-o celulă arbitrară.
Reguli comune de curățenie care necesită o decizie separată
Înregistrări duplicate: Decideți ce coloane definesc un duplicat și dacă tranzacțiile repetate sunt valide înainte de a elimina rânduri. Două nume identice nu reprezintă neapărat aceeași persoană sau comandă.
Celule goale și rânduri goale: O celulă goală, un zero și o valoare text, cum ar fi „N/A”, au semnificații diferite. Nu le înlocuiți și nu le ștergeți fără o regulă de date.
Date și numere stocate ca text: Alegeți mai întâi un format și o setare regională așteptate. Exemplul evită conversia acestor valori deoarece un șir de caractere precum 03/04/2026este ambiguu în diferite regiuni.
Zerouri la început: Importați identificatori, cum ar 00127fi text. Dacă o foaie de calcul le-a stocat deja ca numere, tăierea textului nu poate restabili zerourile lipsă.
Normalizarea majusculelor și minusculelor: Scrierea adreselor de e-mail cu majuscule sau a codurilor de stat cu majuscule poate fi utilă pentru anumite câmpuri, dar aplicarea acesteia la nume sau descrieri de produse poate distruge scrierea cu majuscule intenționată.
Folosiți macrocomenzile ONLYOFFICE atunci când o regulă repetabilă poate fi exprimată cu precizie și o puteți testa pe o copie. Sistemul de macrocomenzi este JavaScript și nu VBA, este atașat unui document și nu este disponibil global și accesul direct la sistemul de fișiere și la rețea este restricționat, așa cum se explică în Întrebările frecvente despre macrocomenzile ONLYOFFICE . Această zonă de testare limitează ceea ce o macrocomandă poate accesa în afara editorului, dar o macrocomandă poate totuși modifica conținutul registrului de lucru, așadar revizuiți și testați codul înainte de a-l rula.
Pentru importurile recurente, păstrați scriptul într-un șablon controlat sau într-o copie a documentului și utilizați o listă de verificare scurtă: confirmați foaia activă, actualizați adresa intervalului, excludeți anteturile și formulele, rulați pe o copie, verificați aleatoriu șirurile editate și comparați registrul de lucru final cu originalul înainte de a-l salva sau partaja.