Table

Table class

Rappresenta una tabella in un documento Word.

Per saperne di più, visita ilLavorare con le tabelle articolo di documentazione.

public class Table : CompositeNode

Costruttori

NomeDescrizione
Table(DocumentBase)Inizializza una nuova istanza diTable classe.

Proprietà

NomeDescrizione
AbsoluteHorizontalDistance { get; set; }Ottiene o imposta la posizione assoluta orizzontale della tabella mobile specificata dalle proprietà della tabella, in punti. Il valore predefinito è 0.
AbsoluteVerticalDistance { get; set; }Ottiene o imposta la posizione assoluta della tabella mobile verticale specificata dalle proprietà della tabella, in punti. Il valore predefinito è 0.
Alignment { get; set; }Specifica come una tabella in linea viene allineata nel documento.
AllowAutoFit { get; set; }Consente a Microsoft Word e Aspose.Words di ridimensionare automaticamente le celle di una tabella per adattarle al loro contenuto.
AllowCellSpacing { get; set; }Ottiene o imposta l’opzione “Consenti spaziatura tra le celle”.
AllowOverlap { get; }Ottiene se una tabella mobile deve consentire ad altri oggetti mobili nel documento di sovrapporsi alle sue estensioni quando vengono visualizzati. Il valore predefinito è VERO .
Bidi { get; set; }Ottiene o imposta se questa è una tabella da destra a sinistra.
BottomPadding { get; set; }Ottiene o imposta la quantità di spazio (in punti) da aggiungere sotto il contenuto delle celle.
CellSpacing { get; set; }Ottiene o imposta la quantità di spazio (in punti) tra le celle.
Count { get; }Ottiene il numero di figli immediati di questo nodo.
CustomNodeId { get; set; }Specifica l’identificatore del nodo personalizzato.
Description { get; set; }Ottiene o imposta la descrizione di questa tabella. Fornisce una rappresentazione testuale alternativa delle informazioni contenute nella tabella.
DistanceBottom { get; set; }Ottiene o imposta la distanza tra il fondo della tabella e il testo circostante, in punti.
DistanceLeft { get; set; }Ottiene o imposta la distanza tra la parte sinistra della tabella e il testo circostante, in punti.
DistanceRight { get; set; }Ottiene o imposta la distanza tra la parte destra della tabella e il testo circostante, in punti.
DistanceTop { get; set; }Ottiene o imposta la distanza tra il piano del tavolo e il testo circostante, in punti.
virtual Document { get; }Ottiene il documento a cui appartiene questo nodo.
FirstChild { get; }Ottiene il primo figlio del nodo.
FirstRow { get; }Restituisce il primoRow nodo nella tabella.
HasChildNodes { get; }RestituisceVERO se questo nodo ha nodi figlio.
HorizontalAnchor { get; set; }Ottiene l’oggetto base da cui deve essere calcolato il posizionamento orizzontale della tabella mobile. Il valore predefinito èColumn .
override IsComposite { get; }RestituisceVERO poiché questo nodo può avere nodi figlio.
LastChild { get; }Ottiene l’ultimo figlio del nodo.
LastRow { get; }Restituisce l’ultimoRow nodo nella tabella.
LeftIndent { get; set; }Ottiene o imposta il valore che rappresenta il rientro sinistro della tabella.
LeftPadding { get; set; }Ottiene o imposta la quantità di spazio (in punti) da aggiungere a sinistra del contenuto delle celle.
NextSibling { get; }Ottiene il nodo immediatamente successivo a questo nodo.
override NodeType { get; }RestituisceTable .
ParentNode { get; }Ottiene il genitore immediato di questo nodo.
PreferredWidth { get; set; }Ottiene o imposta la larghezza preferita della tabella.
PreviousSibling { get; }Ottiene il nodo immediatamente precedente questo nodo.
Range { get; }Restituisce unRangeoggetto che rappresenta la porzione di un documento contenuta in questo nodo.
RelativeHorizontalAlignment { get; set; }Ottiene o imposta l’allineamento orizzontale relativo della tabella mobile.
RelativeVerticalAlignment { get; set; }Ottiene o imposta l’allineamento verticale relativo della tabella mobile.
RightPadding { get; set; }Ottiene o imposta la quantità di spazio (in punti) da aggiungere a destra del contenuto delle celle.
Rows { get; }Fornisce accesso tipizzato alle righe della tabella.
Style { get; set; }Ottiene o imposta lo stile tabella applicato a questa tabella.
StyleIdentifier { get; set; }Ottiene o imposta l’identificatore di stile indipendente dalle impostazioni locali dello stile di tabella applicato a questa tabella.
StyleName { get; set; }Ottiene o imposta il nome dello stile tabella applicato a questa tabella.
StyleOptions { get; set; }Ottiene o imposta i flag di bit che specificano come uno stile di tabella viene applicato a questa tabella.
TextWrapping { get; set; }Ottiene o impostaTextWrapping per la tabella.
Title { get; set; }Ottiene o imposta il titolo di questa tabella. Fornisce una rappresentazione testuale alternativa delle informazioni contenute nella tabella.
TopPadding { get; set; }Ottiene o imposta la quantità di spazio (in punti) da aggiungere sopra il contenuto delle celle.
VerticalAnchor { get; set; }Ottiene l’oggetto base da cui deve essere calcolato il posizionamento verticale della tabella mobile. Il valore predefinito èMargin .

Metodi

NomeDescrizione
override Accept(DocumentVisitor)Accetta un visitatore.
override AcceptEnd(DocumentVisitor)Accetta un visitatore che raggiunge la fine della tabella.
override AcceptStart(DocumentVisitor)Accetta un visitatore per aver visitato l’inizio della tabella.
AppendChild<T>(T)Aggiunge il nodo specificato alla fine dell’elenco dei nodi figlio per questo nodo.
AutoFit(AutoFitBehavior)Ridimensiona la tabella e le celle in base al comportamento di adattamento automatico specificato.
ClearBorders()Rimuove tutti i bordi delle tabelle e delle celle in questa tabella.
ClearShading()Rimuove tutte le ombreggiature sulla tabella.
Clone(bool)Crea un duplicato del nodo.
ConvertToHorizontallyMergedCells()Converte le celle unite orizzontalmente per larghezza in celle unite perHorizontalMerge .
CreateNavigator()Crea un navigatore che può essere utilizzato per attraversare e leggere i nodi.
EnsureMinimum()Se la tabella non ha righe, ne crea e ne aggiunge unaRow .
GetAncestor(NodeType)Ottiene il primo antenato dell’oggetto specificatoNodeType .
GetAncestor(Type)Ottiene il primo antenato del tipo di oggetto specificato.
GetChild(NodeType, int, bool)Restituisce un N-esimo nodo figlio che corrisponde al tipo specificato.
GetChildNodes(NodeType, bool)Restituisce una raccolta live di nodi figlio che corrispondono al tipo specificato.
GetEnumerator()Fornisce supporto per ogni iterazione di stile sui nodi figlio di questo nodo.
override GetText()Ottiene il testo di questo nodo e di tutti i suoi figli.
IndexOf(Node)Restituisce l’indice del nodo figlio specificato nell’array dei nodi figlio.
InsertAfter<T>(T, Node)Inserisce il nodo specificato subito dopo il nodo di riferimento specificato.
InsertBefore<T>(T, Node)Inserisce il nodo specificato immediatamente prima del nodo di riferimento specificato.
NextPreOrder(Node)Ottiene il nodo successivo in base all’algoritmo di attraversamento dell’albero preordinato.
PrependChild<T>(T)Aggiunge il nodo specificato all’inizio dell’elenco dei nodi figlio per questo nodo.
PreviousPreOrder(Node)Ottiene il nodo precedente secondo l’algoritmo di attraversamento dell’albero preordinato.
Remove()Si rimuove dal genitore.
RemoveAllChildren()Rimuove tutti i nodi figlio del nodo corrente.
RemoveChild<T>(T)Rimuove il nodo figlio specificato.
RemoveSmartTags()Rimuove tuttoSmartTag nodi discendenti del nodo corrente.
SelectNodes(string)Seleziona un elenco di nodi che corrispondono all’espressione XPath.
SelectSingleNode(string)Seleziona il primoNode che corrisponde all’espressione XPath.
SetBorder(BorderTypeLineStyle, double, Color, bool)Imposta il bordo della tabella specificato sullo stile di linea, sulla larghezza e sul colore specificati.
SetBorders(LineStyle, double, Color)Imposta tutti i bordi della tabella sullo stile di linea, la larghezza e il colore specificati.
SetShading(TextureIndex, Color, Color)Imposta l’ombreggiatura sui valori specificati sull’intera tabella.
ToString(SaveFormat)Esporta il contenuto del nodo in una stringa nel formato specificato.
ToString(SaveOptions)Esporta il contenuto del nodo in una stringa utilizzando le opzioni di salvataggio specificate.

Osservazioni

Table è un nodo a livello di blocco e può essere un figlio di classi derivate daStory oppure InlineStory.

Table può contenere uno o piùRow nodi.

Una tabella minima valida deve avere almeno unoRow.

Esempi

Mostra come creare una tabella.

Document doc = new Document();
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Le tabelle contengono righe, che contengono celle, che possono avere paragrafi
// con elementi tipici quali sequenze, forme e persino altre tabelle.
// La chiamata al metodo "EnsureMinimum" su una tabella garantirà che
// la tabella ha almeno una riga, una cella e un paragrafo.
Row firstRow = new Row(doc);
table.AppendChild(firstRow);

Cell firstCell = new Cell(doc);
firstRow.AppendChild(firstCell);

Paragraph paragraph = new Paragraph(doc);
firstCell.AppendChild(paragraph);

// Aggiunge testo alla prima cella della prima riga della tabella.
Run run = new Run(doc, "Hello world!");
paragraph.AppendChild(run);

doc.Save(ArtifactsDir + "Table.CreateTable.docx");

Mostra come scorrere tutte le tabelle del documento e stampare il contenuto di ogni cella.

Document doc = new Document(MyDir + "Tables.docx");
TableCollection tables = doc.FirstSection.Body.Tables;

Assert.AreEqual(2, tables.ToArray().Length);

for (int i = 0; i < tables.Count; i++)
{
    Console.WriteLine($"Start of Table {i}");

    RowCollection rows = tables[i].Rows;

    // Possiamo usare il metodo "ToArray" su una raccolta di righe per clonarla in un array.
    Assert.AreEqual(rows, rows.ToArray());
    Assert.AreNotSame(rows, rows.ToArray());

    for (int j = 0; j < rows.Count; j++)
    {
        Console.WriteLine($"\tStart of Row {j}");

        CellCollection cells = rows[j].Cells;

        // Possiamo usare il metodo "ToArray" su una raccolta di celle per clonarla in un array.
        Assert.AreEqual(cells, cells.ToArray());
        Assert.AreNotSame(cells, cells.ToArray());

        for (int k = 0; k < cells.Count; k++)
        {
            string cellText = cells[k].ToString(SaveFormat.Text).Trim();
            Console.WriteLine($"\t\tContents of Cell:{k} = \"{cellText}\"");
        }

        Console.WriteLine($"\tEnd of Row {j}");
    }

    Console.WriteLine($"End of Table {i}\n");
}

Mostra come creare una tabella formattata 2x2.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.StartTable();
builder.InsertCell();
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
builder.Write("Row 1, cell 1.");
builder.InsertCell();
builder.Write("Row 1, cell 2.");
builder.EndRow();

// Durante la creazione della tabella, il generatore di documenti applicherà i valori correnti delle proprietà RowFormat/CellFormat
// alla riga/cella corrente in cui si trova il cursore e a tutte le nuove righe/celle man mano che vengono create.
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[0].CellFormat.VerticalAlignment);
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[1].CellFormat.VerticalAlignment);

builder.InsertCell();
builder.RowFormat.Height = 100;
builder.RowFormat.HeightRule = HeightRule.Exactly;
builder.CellFormat.Orientation = TextOrientation.Upward;
builder.Write("Row 2, cell 1.");
builder.InsertCell();
builder.CellFormat.Orientation = TextOrientation.Downward;
builder.Write("Row 2, cell 2.");
builder.EndRow();
builder.EndTable();

// Le righe e le celle aggiunte in precedenza non vengono retroattivamente influenzate dalle modifiche apportate alla formattazione del builder.
Assert.AreEqual(0, table.Rows[0].RowFormat.Height);
Assert.AreEqual(HeightRule.Auto, table.Rows[0].RowFormat.HeightRule);
Assert.AreEqual(100, table.Rows[1].RowFormat.Height);
Assert.AreEqual(HeightRule.Exactly, table.Rows[1].RowFormat.HeightRule);
Assert.AreEqual(TextOrientation.Upward, table.Rows[1].Cells[0].CellFormat.Orientation);
Assert.AreEqual(TextOrientation.Downward, table.Rows[1].Cells[1].CellFormat.Orientation);

doc.Save(ArtifactsDir + "DocumentBuilder.BuildTable.docx");

Mostra come creare una tabella nidificata senza utilizzare un generatore di documenti.

public void CreateNestedTable()
{
    Document doc = new Document();

    // Crea la tabella esterna con tre righe e quattro colonne, quindi aggiungila al documento.
    Table outerTable = CreateTable(doc, 3, 4, "Outer Table");
    doc.FirstSection.Body.AppendChild(outerTable);

    // Crea un'altra tabella con due righe e due colonne e inseriscila nella prima cella della prima tabella.
    Table innerTable = CreateTable(doc, 2, 2, "Inner Table");
    outerTable.FirstRow.FirstCell.AppendChild(innerTable);

    doc.Save(ArtifactsDir + "Table.CreateNestedTable.docx");
}

/// <summary>
/// Crea una nuova tabella nel documento con le dimensioni specificate e il testo in ogni cella.
/// </summary>
private static Table CreateTable(Document doc, int rowCount, int cellCount, string cellText)
{
    Table table = new Table(doc);

    for (int rowId = 1; rowId <= rowCount; rowId++)
    {
        Row row = new Row(doc);
        table.AppendChild(row);

        for (int cellId = 1; cellId <= cellCount; cellId++)
        {
            Cell cell = new Cell(doc);
            cell.AppendChild(new Paragraph(doc));
            cell.FirstParagraph.AppendChild(new Run(doc, cellText));

            row.AppendChild(cell);
        }
    }

    // Puoi utilizzare le proprietà "Titolo" e "Descrizione" per aggiungere rispettivamente un titolo e una descrizione alla tua tabella.
    // La tabella deve avere almeno una riga prima di poter utilizzare queste proprietà.
    // Queste proprietà sono significative per i documenti .docx conformi allo standard ISO/IEC 29500 (vedere la classe OoxmlCompliance).
    // Se salviamo il documento in formati precedenti a ISO/IEC 29500, Microsoft Word ignora queste proprietà.
    table.Title = "Aspose table title";
    table.Description = "Aspose table description";

    return table;
}

Guarda anche