Lucrul cu coloane și rânduri

Pentru mai mult control asupra modului în care funcţionează tabelele, învăţaţi cum să manipulaţi coloanele şi rândurile.

Găseşte Indicele Elementului Tabel

Coloanele, rândurile și celulele sunt gestionate prin accesarea nodului de document selectat după indicele său. Găsirea indicelui unui nod implică colectarea tuturor nodurilor copil ale tipului de element din nodul părinte, și apoi folosirea metodei IndexOf pentru a găsi indicele nodului dorit în colecție.

Găsiți Indicele unei Tabeli într-un Document

Uneori, s-ar putea să aveți nevoie de a face schimbări la o masă specifică într-un document. Pentru a face acest lucru poți să te referi la o tabelă prin indicele său.

Exemplul de cod următor prezintă modul în care se poate obține indicele unei tabele dintr-un document:

Găsește Indicele unei Rânduri într-o Tabelă

Similar, s-ar putea să fie necesar să faci modificări la un rând specific într-o tabelă selectată. Pentru aceasta, puteți face referire și la o rând prin indexul acestuia.

Exemplul următor de cod arată cum se obține indicele unei rânduri într-o masă:

Găsiți Indicele unei Celule într-o Rând

În final, s-ar putea să aveți nevoie să faceți modificări la o anumită celulă și puteți face acest lucru prin celula ca bine.

Exemplul de cod următor arată cum se obține indicele unei celule într-un rând:

Lucrează cu coloane

În Aspose.Words Document Object Model (DOM), nodul Table constă din Row noduri și apoi Cell noduri. Astfel, în modelul obiectelor Document din Aspose.Words, așa cum este cazul și în documentele Word, nu există ideea de coloană.

Prin design, rândurile din Microsoft Word și Aspose.Words sunt complet independente; iar proprietățile de bază și operațiunile sunt conținute doar în rândurile și celulele tabelului. Acest lucru îi dă tabelelor capacitatea de a avea câteva atribute interesante:

  • Fiecare rând de tabel poate avea un număr complet diferit de celule
  • Celulele fiecărei rânduri pot avea lățimi diferite
  • Este posibil să se unească tabele cu formate de rând diferite și număr de celule

Orice operații efectuate pe coloane sunt, de fapt, “scurtături” care efectuează operația prin schimbarea colectivă a celulelor rândului în așa fel încât să pară că se aplică la coloane. Adică, puteți efectua operații pe coloane prin simpla iterare peste același index de celulă a rândului din tabel.

Exemplul de cod următor simplifică astfel de operațiuni prin furnizarea unei clase “facade” care colectează celulele care alcătuiesc o coloană dintr-o tabelă:

Exemplul de cod următor arată cum să inserezi o coloană goală într-o tabelă:

Exemplul de cod următor arată cum să elimini o coloană dintr-o masă într-un document:

Specificați rândurile ca rânduri de antet

Puteți alege să repetați primul rând din tabel ca și rând de antet numai pe prima pagină sau pe fiecare pagină dacă tabelul este împărțit în mai multe. În Aspose.Words, poţi repeta linia de antet pe fiecare pagină folosind proprietatea HeadingFormat.

Puteți marca, de asemenea, mai multe rânduri de antet dacă aceste rânduri sunt situate unul după altul la începutul tabelului. Pentru a face asta trebuie să aplici proprietățile HeadingFormat acestor rânduri.

Exemplul de cod de mai jos arată cum să construiești o tabelă care include rânduri de antet care se repetă pe paginile ulterioare:

Păstrați tabele și rânduri de la a se rupe pe pagină

Sunt momente în care conținutul unei tabele nu ar trebui să fie împărțit pe pagini. De exemplu, dacă un titlu se află deasupra unei tabele, titlul și tabelul ar trebui să fie întotdeauna păstrate împreună pe aceeași pagină pentru a păstra o aspectare corespunzătoare.

Există două tehnici separate care sunt utile pentru a realiza această funcționalitate:

  • Allow row break across pages, care este aplicat rândurilor de masă
  • Keep with next, care este aplicat paragrafelor în celule de tabelă

În mod implicit, proprietățile de mai sus sunt dezactivate.

Păstrați rânduri de la a se rupe pe pagini

Acest lucru presupune restricționarea conținutului din celulele unei rânduri de la a fi împărțit pe pagină. În Microsoft Word, aceasta poate fi găsită sub proprietățile Tabelului ca opțiunea “Permite rândului să se spargă pe pagini. În Aspose.Words aceasta este găsită sub obiectul RowFormat al unui Row, ca proprietatea RowFormat.AllowBreakAcrossPages.

Exemplul de cod următor arată cum să dezactivați ruperea rândurilor peste pagini pentru fiecare rând dintr-o tabelă:

Păstrează un tabel de la a se rupe pe pagini

Ca să împiedicăm ca o masă să se împartă peste pagini, avem nevoie să specificăm că vreau conținutul cuprins în masă să rămână împreună.

Pentru acest lucru, Aspose.Words folosește o metodă, care permite utilizatorilor să selecteze un tabel și să activeze parametrul KeepWithNext la true pentru fiecare paragraf din celulele tabelului. “Excepția este ultimul paragraf din tabel, care ar trebui să fie setat la false.”

Exemplul de cod următor arată cum se setează o masă care să rămână împreună pe aceeași pagină: