Obavijanje teksta u ćeliji crticama pomoću ONLYOFFICE makroa

20 August 2026By Sara Bogavac

Formatiranje vrednosti u ćelijama ručno, jednu po jednu, može biti zamorno — posebno kada treba primeniti isti obrazac na desetine ili stotine ćelija. U ovom postu, pokažaćemo vam jednostavan makro za ONLYOFFICE Spreadsheet Editor koji automatski obavija svaki karakter u izabranim ćelijama crticama.

Obavijanje teksta u ćeliji crticama pomoću ONLYOFFICE makroa

Zašto koristiti ovaj makro

Obavijanje karaktera sa separatorom poput ovog može biti korisno za generisanje dekorativnih etiketa, kreiranje vizuelno različitih vrednosti za označavanje ili pripremu podataka za uvoz u sisteme koji očekuju nizove sa obrubima. Raditi ovo ručno za veliki opseg ćelija je sporo i sklono greškama — makro to obavlja trenutnom brzinom i dovoljno je pametan da preskoči prazne ćelije i ćelije koje su već obavijene, tako da ga možete ponovo pokrenuti bez dupliranja crtica.

Kreiranje makroa

Evo detaljnijeg pregleda svake komponente skripta i uloge koju igra.

Dobijanje trenutnog izbora

Makro počinje tako što uzima određeni opseg ćelija koje je korisnik trenutno izabrao:

let selection = Api.GetSelection();
selection.ForEach(function (cell) {
    // ... procesira se ovde za svaku ćeliju
});

Api.GetSelection() vraća opseg ćelija koji je trenutno izabran na tabeli, a ForEach() prolazi kroz svaku pojedinačnu ćeliju u tom opsegu, izvršavajući funkciju povratnog poziva jednom po pozivu.

Preskakanje praznih ćelija

Pre nego što izvrši bilo kakvu obradu, makro proverava da li ćelija zapravo ima vrednost:

let cellValue = cell.GetValue();

if (cellValue === null || cellValue === undefined || cellValue === "") {
  return;
}

GetValue() čita trenutni sadržaj ćelije. Ako je ćelija prazna (null, undefined ili prazan string), funkcija jednostavno ranije vraća i prelazi na sledeću ćeliju, ostavljajući prazne ćelije netaknute.

Preskakanje ćelija koje su već obavijene

Pošto želimo da makro bude bezbedan za pokretanje više od jednom, takođe proverava da li je ćelija već obrađena:

cellValue = String(cellValue);

if (/^---(?:.---)+$/.test(cellValue)) {
  return;
}

Vrednost se prvo konvertuje u string pomoću metode String() kako bi se mogla bezbedno testirati i prolaziti kroz nju karakter po karakter. Regularni izraz /^—(?:.—)+$/ poklapa nizove koji već prate obrazac — ako se poklapa, makro preskoči ćeliju umesto da je obavija drugi put.

Obavijanje svakog karaktera crticama

Ovo je srž makroa, koji gradi novi string karakter po karakter:

let sTemp = "---";

for (let c = 0; c < cellValue.length; c++) {
  sTemp += cellValue.charAt(c) + "---";
}

Svaka iteracija petlje dodaje sledeći karakter iz originalne vrednosti, praćeno “—“, postepeno ponovo gradi string sa crticama umetnutim između svakog karaktera.

Snimanje rezultata nazad u ćeliju

Na kraju, novo izgrađeni string se snima nazad u ćeliju:

cell.SetValue(sTemp);

Kompletan kod makroa

(function () {
  // Dobijanje trenutno izabranih ćelija u tabeli
  let selection = Api.GetSelection();

  // Prolazimo kroz svaku izabranu ćeliju
  selection.ForEach(function (cell) {
    // Dobijanje trenutne vrednosti ćelije
    let cellValue = cell.GetValue();

    // Preskočiti prazne, null ili undefined ćelije — nema šta da se obradi
    if (cellValue === null || cellValue === undefined || cellValue === "") {
      return;
    }

    // Osigurati da se vrednost tretira kao string (u slučaju da je broj, itd.)
    cellValue = String(cellValue);

    // Preskočiti ćelije koje već odgovaraju obrascu
    if (/^---(?:.---)+$/.test(cellValue)) {
      return;
    }

    // Početi sa izgradnjom nove vrednosti sa vodećim "---"
    let sTemp = "---";

    // Obavijanje svakog karaktera originalne vrednosti sa "---" separatorima
    for (let c = 0; c < cellValue.length; c++) {
      sTemp += cellValue.charAt(c) + "---";
    }

    // Snimanje transformisane vrednosti nazad u ćeliju
    cell.SetValue(sTemp);
  });
})();

Sada, pokrenimo makro i vidimo kako funkcioniše!

Obavijanje teksta u ćeliji crticama pomoću ONLYOFFICE makroa

Kako ga koristiti

  1. Otvorite tabelu u ONLYOFFICE Spreadsheet Editor.
  2. Izaberite opseg ćelija koji želite da formatirate.
  3. Idite na PregledMakroa, kreirajte novi makro i nalepite gorenavedeni kod.
  4. Kliknite na Pokreni.

Svaka ne-prazna ćelija u vašem izboru biće odmah obavijena crticama, prazne ćelije i ćelije koje su već obavijene će ostati netaknute.

Ovaj makro je praktičan primer kako nekoliko redova koda može preuzeti ponavljajući zadatak formatiranja koji bi inače podrazumevao uređivanje ćelija jednu po jednu — i lako je prilagoditi za druge separatore ili obrasce osim crtica.

Ako imate ideju za makro koji želite da vidite obrađen, ili način na koji ovaj može biti poboljšan? Posetite Macro kategoriju na forumu zajednice ONLYOFFICE i podelite svoju sugestiju — to je najbolje mesto za traženje novih primera makroa ili razgovor o idejama sa timom ONLYOFFICE i drugim programerima.

Create your free ONLYOFFICE account

View, edit and collaborate on docs, sheets, slides, forms, and PDF files online.