Aplică formatarea tabelelor
Fiecare element al unei tabele poate fi aplicat cu diferite formatări. De exemplu, formatarea tabelelor va fi aplicată întregului tabel, formatarea rândurilor doar anumitor rânduri, iar formatarea celulelor doar anumitor celule.
Aspose.Words oferă un API bogat pentru a recupera și aplica formatare la o tabelă. Puteți folosi nodurile Table, RowFormat și CellFormat pentru a seta formatarea.
În acest articol vom vorbi despre cum să aplicăm formatare diferitelor noduri de tabel și ce setări de formatare a tabelelor suportă Aspose.Words.
Aplică formatare la noduri diferite
În această secțiune, vom analiza aplicarea formatării la diverse noduri de tabelă.
Formatarea nivelului de masă
Pentru a aplica formatarea unei tabele, puteți utiliza proprietățile disponibile pe nodul Table corespunzător folosind clasele Table, PreferredWidth și TableCollection.
Imaginea de mai jos prezintă o reprezentare a caracteristicilor Table de formatare în Microsoft Word și proprietățile lor corespondente în Aspose.Words.
Exemplul de cod următor arată cum să aplici o margine de contur la un tabel:
Exemplul de cod următor prezintă modul în care se poate construi o tabelă cu toate marginile activate (grilă):
Formatarea la nivel de rând
Row-level formatarea poate fi controlată folosind clasele Row, RowFormat și RowCollection.
Imaginea de mai jos prezintă o reprezentare a caracteristicilor de formatare Row în Microsoft Word și proprietățile lor corespunzătoare în Aspose.Words.
Exemplul de cod următor arată cum se modifică formatarea rândului de tabelă:
Formatare la nivelul celulelor
Formatarea la nivel de celulă este controlată de Cell, CellFormat și CellCollection clase.
Notă că un Cell poate fi doar nod copil al unui Row. În același timp, trebuie să existe cel puțin un Paragraph în Cell, astfel încât formatarea poate fi aplicată la acesta.
Pe lângă Paragraph, puteți insera și o Table într-o Cell.
Imaginile de mai jos prezintă o reprezentare a caracteristicilor de formatare Cell în Microsoft Word și proprietățile lor corespunzătoare în Aspose.Words.
Exemplul următor de cod arată cum să modifici formatarea unei celule de tabelă:
Exemplul de cod de mai jos arată cum să se stabilească cantitatea de spațiu (în puncte) pentru a adăuga la stânga/sus/dreapta/jos de conținutul celulei:
Specificați înălțimile rândurilor
Cea mai simplă cale pentru a seta înălțimea rândului este de a folosi DocumentBuilder. Utilizând proprietățile RowFormat potrivite, poți seta înălțimea implicită sau aplica o înălțime diferită pentru fiecare rând din tabelă.
În Aspose.Words înălţimea rândului de tabel este controlată de:
- proprietatea înălțimii rândului - Height
- proprietatea înălțimii regulii pentru rândul dat - HeightRule
În același timp, o înălțime diferită poate fi stabilită pentru fiecare rând - aceasta permite un control larg asupra setărilor tabelului.
Exemplul de cod următor arată cum să creați o tabelă care conține o singură celulă și să aplicați formatarea rândului:
Specificaţi lăţimea tabelelor şi a celulelor
O masă dintr-un Microsoft Word document oferă mai multe moduri diferite de a redimensiona tabelul și celulele individuale. Aceste proprietăți permit un control considerabil asupra aspectului și comportamentului tabelului, astfel încât Aspose.Words suportă comportamentul tabelelor, așa cum este în Microsoft Word.
Este important să știți că elementele de tabel prezintă mai multe proprietăți diferite care pot afecta modul în care se calculează lățimea generală a tabelului, precum și a celulelor individuale
“- Lățimea preferată pe masă”
- Lățimea preferată pentru celule individuale
- Permițând autofitul pe masă
Acest articol detaliază modul în care funcționează diferitele proprietăți de calcul al lățimii tabelului și modul de a obține controlul complet asupra procesului de calcul. Aceasta este în special util să știi în astfel de cazuri, unde aranjamentul tabelei nu apare așa cum se așteaptă.
În majoritatea cazurilor, se recomandă o celulă preferată decât lățimea tabelului. Lățimea celulelor preferată este mai în concordanță cu specificația DOCX precum și cu Aspose.Words șablonului.
Lățimea celulei este de fapt o valoare calculată pentru formatul DOCX. Lățimea reală a celulelor depinde de multe lucruri. De exemplu, modificarea marginilor paginii sau lățimii de tabel preferată poate afecta lățimea reală a celulei.
“Lățimea de celulă preferată este o proprietate care se stochează în document.” Nu depinde de nimic și nu se schimbă atunci când schimbați tabelul sau alte proprietăți ale celulei.
Cum să folosești lățimea preferată
Lățimea dorită a unei tabele sau a celulelor individuale este definită prin proprietatea lățime preferată, care este mărimea la care un element încearcă să se potrivească. “Adică, lăţimea preferată poate fi specificată pentru întreaga tabelă sau pentru celule individuale.” În unele situații nu este posibil să se potrivească exact această lățime, dar lățimea reală va fi aproape de această valoare în majoritatea cazurilor.
Tipul și valoarea preferate a lățimii potrivite sunt stabilite folosind metodele clasei PreferredWidth:
- metoda Auto pentru a specifica auto sau “fără lățime preferată”
- metoda FromPercent pentru specificaţia unei lățimi procentuale
- metoda FromPoints pentru a specifica lățimea în puncte
Imaginea de mai jos prezintă o reprezentare a setărilor caracteristicilor lățime preferată în Microsoft Word și proprietățile lor corespunzătoare în Aspose.Words.
Un exemplu de modul în care aceste opțiuni sunt aplicate la o masă reală dintr-un document îl puteți vedea în imaginea de mai jos.
Specifica lățimea tabelului sau a celulei preferate
În Aspose.Words, lățimile tabelelor și a celulelor sunt setate folosind proprietatea Table.PreferredWidth și proprietatea CellFormat.PreferredWidth, cu opțiuni disponibile în enumerarea PreferredWidthType:
- Auto, care este echivalent cu o lățime preferată nsetată
- Percent, care se potrivește cu elementul relativ la spațiul disponibil în fereastra sau dimensiunea recipientului, și recalculează valoarea atunci când lățimea disponibilă se schimbă
- Points, care corespunde unui element cu lățimea specificată în puncte
Folosind proprietatea Table.PreferredWidth se va ajusta lățimea sa preferată în raport cu containerul său: pagină, coloană de text sau celulă de tabel exterioară dacă este un tabel înnscris.
Exemplul de cod următor arată cum să se configureze tabelul pentru a se potrivi automat la 50% din lățimea paginii:
Utilizarea proprietății CellFormat.PreferredWidth pe o anumită celulă va ajusta lățimea sa preferată.
Exemplul de cod următor arată cum să setați setările de lățime preferate diferite:
Găsiți Tipul și Valoarea Preferate a Lățimii
Puteți folosi proprietățile Type și Value pentru a găsi detalii de lățime preferate ale tabelului sau celulei dorite.
Exemplul de cod următor arată cum se obține tipul de lățime preferat al unei celule de tabelă:
Cum să setezi AutoFit
Proprietatea AllowAutoFit permite celulelor dintr-o tabelă să crească şi să se micşoreze în funcţie de un criteriu selectat. De exemplu, puteți folosi opțiunea Auto Fit la fereastră pentru a face ca tabelul să se potrivească lăţimii paginii şi opţiunea AutoFit la conținut pentru a permite fiecărei celule să crească sau să scadă în funcţie de conţinut.
În mod implicit, Aspose.Words introduce o nouă tabelă folosind Auto potrivire la fereastră. Masa va fi dimensionată în funcție de lățimea paginii disponibile. Pentru a redimensiona o tabele, puteți apela metoda AutoFit. Acest metode acceptă o enumerare AutoFitBehavior care specifică tipul de autofit aplicat la tabel.
Este important să știi că metoda autofit este de fapt o scurtătură care aplică diferite proprietăți la tabel în același timp. Acestea sunt proprietăți care dau efectiv tabelului comportamentul observat. Vom discuta aceste proprietăți pentru fiecare opțiune de autofit.
Exemplul de cod de mai jos arată cum se setează o tabelă să se micșoreze sau să crească fiecare celulă conform conținutului său:
Auto Fit Tabelă la Fereastră
Când se aplică auto-dimensiunea la o fereastră la o tabelă, următoarele operații sunt efectuate efectiv în spatele scenei:
- Proprietatea Table.AllowAutoFit este activată pentru a redimensiona automat coloanele pentru a se potrivi cu conținutul disponibil, folosind o valoare de Table.PreferredWidth de 100%
- CellFormat.PreferredWidth este eliminat din toate celulele de tabelă
Notă că acest lucru este ușor diferit de comportamentul Microsoft Word, unde lățimea preferată a fiecărei celule se stabilește la valori potrivite în funcție de dimensiunea și conținutul lor actual. Aspose.Words nu actualizează lățimea preferată, deci ele pur și simplu sunt golite.
- Lățimea coloanelor sunt recalculată pentru conținutul curent al tabelului - rezultatul final este un tabel care ocupă lățimea totală disponibilă
- Lățimea coloanelor din tabel se modifică automat pe măsură ce utilizatorul editează textul
Exemplul de cod următor arată cum să autotajească un tabel la lățimea paginii:
Tabelul AutoFit la Conținut
Când masa este auto-dimensiuni conținutul, pașii următori sunt de fapt efectuate în culise:
-
Proprietatea Table.AllowAutoFit este activată pentru a mări automat fiecare celulă în funcție de conținutul său
-
“Lățimea preferată a tabelului este eliminată din Table.PreferredWidth, “CellFormat.PreferredWidth” este eliminat pentru fiecare celulă de tabelă”
Notă că această opțiune de autofituire elimină lățimea preferată din celule, la fel ca în Microsoft Word. Dacă vrei să păstrezi dimensiunile coloanei şi să creşti sau să scadă numărul de coloane pentru a se potrivi cu conţinutul, ar trebui să setezi proprietatea Table.AllowAutoFit la True pe cont propriu mai degrabă decât să foloseşti scurtătura autofit. -
Lățimea coloanei este recalculată pentru conținutul tabelului curent - rezultatul final este un tabel în care lățimea coloanei și lățimea întregului tabel sunt redimensionate automat pentru a se potrivi cel mai bine conținutului, pe măsură ce utilizatorul editează textul
Exemplul de cod următor arată cum să se adapteze o masă conținutului său:
Dezactivați AutoFit în Tabel și Utilizați Lățimea Fixă a Coloanei
Dacă o masă are autofit dezactivat și lățimi de coloane fixe sunt utilizate în schimb, următoarele pași sunt efectuați:
-
Table.AllowAutoFit proprietate este dezactivată, astfel încât coloane nu cresc sau se micșorează la conținutul lor
-
Lățimea preferată a întregii tabele este eliminată din Table.PreferredWidth, CellFormat.PreferredWidth este eliminat din toate celulele de tabel
-
Rezultatul final este o tabelă ale cărui lățimi de coloană sunt determinate de proprietatea CellFormat.Width, și ale căror coloane nu se redimensionează automat când utilizatorul introduce text sau când pagina este redimensionată
Exemplul următor de cod arată cum să dezactiveze autofit și să activeze lățime fixă pentru tabelul specificat:
Ordine de precădere atunci când calculăm lățimea celulei
Aspose.Words permite utilizatorilor să definească lățimea unei tabele sau a unei celule prin intermediul mai multor obiecte, inclusiv CellFormat – proprietatea sa “Width” este în mare parte rămasă din versiunile anterioare, dar este încă utilă pentru simplificarea setării lăţimii celulei.
Este important să ştiţi că proprietatea CellFormat.Width funcţionează diferit în funcţie de care dintre celelalte proprietăţi de lăţime există deja în tabel.
Aspose.Words folosește următoarea ordine pentru calcularea lățimilor de celule:
Comandă | Proprietate | Descrierea |
---|---|---|
1 | AllowAutoFit" e determinat | Dacă este activat AutoFit: - tabelul poate crește dincolo de lățimea preferată pentru a acomoda conținutul – de obicei nu se reduce sub lățimea preferată - orice modificare a valorii CellFormat.Width este ignorată și celula va se potrivi conținutului său în schimb |
2 | PreferredWidthType cu o valoare de Points sau Percent | CellFormat.Width este ignorat |
3 | PreferredWidthType cu o valoare de Auto | Valoarea din CellFormat.Width este copiată și devine lățimea preferată a celulei (în puncte) |
Permite spațiere între celule
Poți obține sau seta orice spațiu suplimentar între celulele de tabel, asemănător cu opțiunea “Spatiu celule” din Microsoft Word. Aceasta se poate face folosind proprietatea AllowCellSpacing.
Un exemplu al modului în care aceste opțiuni sunt aplicate la o masă reală într-un document poate fi văzut în imaginea de mai jos.
Exemplul de cod următor arată cum se stabilește spațierea între celule:
Aplică borduri și umbrirea
Se pot aplica borduri și umbre la întreaga masă folosind Table.SetBorder, Table.SetBorders și Table.SetShading, sau doar la anumite celule folosind CellFormat.Borders și CellFormat.Shading. În plus, bordurile rândurilor pot fi setate folosind RowFormat.Borders, totuși nu se poate aplica umbrirea în acest fel.
Imaginea de mai jos prezintă setările de margine și umbră în Microsoft Word și proprietățile lor corespondente în Aspose.Words.
Exemplul de cod următor arată cum se poate formata o tabelă și o celulă cu diferite margini și umbre: