Kako kreirati tabelu iz numerisane liste koristeći ONLYOFFICE makroe
Kada radimo s dokumentima, često moramo da konvertujemo numerisane liste u tabele kako bismo poboljšali čitljivost. Ručno obavljanje ovog zadatka može biti dugotrajno. Srećom, ONLYOFFICE makroi omogućavaju korisnicima da efikasno automatizuju ponavljajuće zadatke. U ovom blog postu pružićemo vam detaljno uputstvo za izradu ONLYOFFICE makroa koji besprekorno pretvara numerisane liste u strukturirane tabele.
Izrada makroa
Preuzimanje dokumenta i numerisanih pasusa
Makro započinje pristupanjem aktivnom dokumentu i preuzimanjem svih pasusa koji sadrže numeraciju:
const oDocument = Api.GetDocument();
const paragraphs = oDocument.GetAllNumberedParagraphs();
- Api.GetDocument() preuzima trenutno otvoren dokument.
- oDocument.GetAllNumberedParagraphs() prikuplja sve pasuse koji koriste stilove numeracije.
Organizovanje numerisanih stavki u redove
Skript prolazi kroz svaki numerisani pasus i sortira ih u redove tabele:
let tableData = [];
let currentRow = [];
for (let i = 0; i < paragraphs.length; i++) {
let level = paragraphs[i].GetNumbering().GetLevelIndex();
let text = paragraphs[i].GetText().trim();
if (level === 0) {
if (currentRow.length > 0) {
tableData.push(currentRow);
}
currentRow = [text];
} else if (level === 1 && currentRow.length > 0) {
currentRow.push(text);
}
}
if (currentRow.length > 0) {
tableData.push(currentRow);
}
- Skript prolazi kroz sve pasuse i proverava njihov nivo numeracije.
- Stavke sa nivoom 0 započinju novi red, dok se stavke sa nivoom 1 dodaju kao kolone u trenutni red.
- Nakon obrade, svi prikupljeni redovi se skladište u tableData.
Određivanje dimenzija tabele
Pre nego što kreira tabelu, makro određuje broj potrebnih kolona. Skript računa maxColumns pronalazeći najduži red u tableData. Ovo osigurava da tabela ima dovoljno kolona za sve stavke:
let maxColumns = 0;
for (let j = 0; j < tableData.length; j++) {
if (tableData[j].length > maxColumns) {
maxColumns = tableData[j].length;
}
}
Kreiranje i popunjavanje tabele
Sada kada su podaci organizovani, makro kreira tabelu i ubacuje prikupljeni sadržaj:
let table = Api.CreateTable(maxColumns, tableData.length);
oDocument.Push(table);
for (let row = 0; row < tableData.length; row++) {
for (let col = 0; col < tableData[row].length; col++) {
table
.GetCell(row, col)
.GetContent()
.GetElement(0)
.AddText(tableData[row][col]);
}
}
- Api.CreateTable(maxColumns, tableData.length) kreira tabelu sa odgovarajućim dimenzijama.
- Skript prolazi kroz tableData i ubacuje odgovarajući tekst u svaku ćeliju.
Obrada grešaka
Kako bi se osiguralo nesmetano izvršavanje, koristi se, a try…catch blok za hvatanje i evidentiranje grešaka. Ako dođe do greške, ona će biti zabeležena u konzoli, pomažući korisnicima u otklanjanju problema:
try {
// Code execution
} catch (error) {
console.log("Error: " + error.message);
}
Sada možemo pokrenuti naš makro i videti kako funkcioniše!
Nadamo se da će ovaj makro postati dragoceni dodatak vašem alatu, pomažući vam da pojednostavite ponavljajuće zadatke u svom radnom procesu. ONLYOFFICE makroi su osmišljeni da optimizuju vaš rad i povećaju efikasnost. Podstičemo vas da istražite našu obimnu biblioteku API metoda i kreirate prilagođene makroe prema vašim potrebama. Ako imate ideje ili predloge, slobodno nas kontaktirajte. Uvek smo otvoreni za nove ideje i saradnju! Srećno u vašim istraživačkim poduhvatima!
Korisni linkovi
Create your free ONLYOFFICE account
View, edit and collaborate on docs, sheets, slides, forms, and PDF files online.