Table - Merge Cells Programmatically

2 posts, 0 answers
  1. Robert
    Robert avatar
    271 posts
    Member since:
    Mar 2011

    Posted 12 Nov 2013 Link to this post

    Hi,

    How do you merge table cells programmatically?

    I'm creating a table via code as customer merge field, but I need to merge my header row with with all cells within the same row so that is spans multiple columns.

    I'm using library version 2013.1.220.40.

    Here's my code thus far (Sorry it's quite long):

    Table table = new Table();
     
    //Payment Details Title **
    Span spanPaymentDetails = new Span("Payment Details");
    spanPaymentDetails.StyleName = "styleTableTitle14";
    Paragraph paragraphPaymentDetails = new Paragraph();
    paragraphPaymentDetails.Inlines.Add(spanPaymentDetails);
     
    TableCell cellPaymentDetails = new TableCell();
    cellPaymentDetails.Background = Colors.LightGray;
    cellPaymentDetails.Blocks.Add(paragraphPaymentDetails);
     
     
    //BACS
    Span spanBACS = new Span("BACS:");
    spanBACS.StyleName = "styleTableContent14";
    spanBACS.FontStyle = FontStyles.Italic;
    Paragraph paragraphBACS = new Paragraph();
    paragraphBACS.Inlines.Add(spanBACS);
     
    TableCell cellBACS = new TableCell();
    cellBACS.Background = Colors.LightGray;
    cellBACS.Blocks.Add(paragraphBACS);
     
     
    //Bank
    Span spanBankTitle = new Span("Bank: ");
    spanBankTitle.StyleName = "styleTableContent14";
    spanBankTitle.FontStyle = FontStyles.Italic;
    Span spanBankDetail = new Span("HSBC");
    spanBankDetail.StyleName = "styleTableContent14";
    Paragraph paragraphBank = new Paragraph();
    paragraphBank.Inlines.Add(spanBankTitle);
    paragraphBank.Inlines.Add(spanBankDetail);
     
    TableCell cellBank = new TableCell();
    cellBank.Background = Colors.Transparent;
    cellBank.Blocks.Add(paragraphBank);
     
     
    //Account Name
    Span spanAccountNameTitle = new Span("Account Name: ");
    spanAccountNameTitle.StyleName = "styleTableContent14";
    spanAccountNameTitle.FontStyle = FontStyles.Italic;
    Span spanAccountNameDetail = new Span("My Company Name");
    spanAccountNameDetail.StyleName = "styleTableContent14";
    Paragraph paragraphAccountName = new Paragraph();
    paragraphAccountName.Inlines.Add(spanAccountNameTitle);
    paragraphAccountName.Inlines.Add(spanAccountNameDetail);
     
    TableCell cellAccountName = new TableCell();
    cellAccountName.Background = Colors.LightGray;
    cellAccountName.Blocks.Add(paragraphAccountName);
     
     
    //Sort Code
    Span spanSortCodeTitle = new Span("Sort Code: ");
    spanSortCodeTitle.StyleName = "styleTableContent14";
    spanSortCodeTitle.FontStyle = FontStyles.Italic;
    Span spanSortCodeDetail = new Span("22-11-33");
    spanSortCodeDetail.StyleName = "styleTableContent14";
    Paragraph paragraphSortCode = new Paragraph();
    paragraphSortCode.Inlines.Add(spanSortCodeTitle);
    paragraphSortCode.Inlines.Add(spanSortCodeDetail);
     
    TableCell cellSortCode = new TableCell();
    cellSortCode.Background = Colors.LightGray;
    cellSortCode.Blocks.Add(paragraphSortCode);
     
     
    //Account No.
    Span spanAccountNoTitle = new Span("Account No. ");
    spanAccountNoTitle.StyleName = "styleTableContent14";
    spanAccountNoTitle.FontStyle = FontStyles.Italic;
    Span spanAccountNoDetail = new Span("xxxx xxxx");
    spanAccountNoDetail.StyleName = "styleTableContent14";
    Paragraph paragraphAccountNo = new Paragraph();
    paragraphAccountNo.Inlines.Add(spanAccountNoTitle);
    paragraphAccountNo.Inlines.Add(spanAccountNoDetail);
     
    TableCell cellAccountNo = new TableCell();
    cellAccountNo.Background = Colors.LightGray;
    cellAccountNo.Blocks.Add(paragraphAccountNo);
     
     
     
    //Cheque
    Span spanCheque = new Span("Cheque:");
    spanCheque.StyleName = "styleTableContent14";
    Paragraph paragraphCheque = new Paragraph();
    paragraphCheque.Inlines.Add(spanCheque);
     
    TableCell cellCheque = new TableCell();
    cellCheque.Background = Colors.LightGray;
    cellCheque.Blocks.Add(paragraphCheque);
     
     
    //Cheque Made Payable To
    Span spanChequeMadePayableTo = new Span("Made Payable To:");
    spanChequeMadePayableTo.StyleName = "styleTableContent14";
    Paragraph paragraphChequeMadePayableTo = new Paragraph();
    paragraphChequeMadePayableTo.Inlines.Add(spanChequeMadePayableTo);
     
    TableCell cellChequeMadePayableTo = new TableCell();
    cellChequeMadePayableTo.Background = Colors.LightGray;
    cellChequeMadePayableTo.Blocks.Add(paragraphChequeMadePayableTo);
     
     
    //Cheque Details
    Span spanChequeDetail = new Span("My Company Name");
    spanChequeDetail.StyleName = "styleTableContent14";
    Paragraph paragraphChequeDetail = new Paragraph();
    paragraphChequeDetail.Inlines.Add(spanChequeDetail);
     
    TableCell cellChequeDetail = new TableCell();
    cellChequeDetail.Background = Colors.LightGray;
    cellChequeDetail.Blocks.Add(paragraphChequeDetail);
     
     
     
     
    //Add Cells To Table Row
    TableRow rowTitle = new TableRow();
    rowTitle.Cells.Add(cellPaymentDetails);
    table.AddRow(rowTitle);
     
     
    TableRow rowDetails = new TableRow();
    rowDetails.Cells.Add(cellBACS);
    rowDetails.Cells.Add(cellBank);
    rowDetails.Cells.Add(cellAccountName);
    rowDetails.Cells.Add(cellCheque);
    rowDetails.Cells.Add(cellChequeMadePayableTo);
    table.AddRow(rowDetails);
     
    TableRow rowDetails2 = new TableRow();
    rowDetails2.Cells.Add(new TableCell());
    rowDetails2.Cells.Add(cellSortCode);
    rowDetails2.Cells.Add(cellAccountNo);
    rowDetails2.Cells.Add(new TableCell());
    rowDetails2.Cells.Add(cellChequeDetail);
    table.AddRow(rowDetails2);
     
    //Change Cell Padding
    table.CellPadding = new Padding(5, 3, 5, 3);
     
    //Create Document & Apply Styles
    RadDocument document = new RadDocument();
    RadDocumentStyles.AddStylesToDocumentRepository(document);
     
    Section section = new Section();
     
    //Add Empty Paragraph
    Paragraph paragraph = new Paragraph();
    paragraph.StyleName = "paragraphMailMergeTable";
    section.Blocks.Add(paragraph);
     
    //Add Table
    section.Blocks.Add(table);
     
    //Add Empty Paragraph
    Paragraph paragraph1 = new Paragraph();
    paragraph1.StyleName = "paragraphMailMergeTable";
    section.Blocks.Add(paragraph1);
     
    //Add Section To Document
    document.Sections.Add(section);
     
    document.MeasureAndArrangeInDefaultSize();
     
    return new DocumentFragment(document);


    Thanks,

    Rob

  2. Robert
    Robert avatar
    271 posts
    Member since:
    Mar 2011

    Posted 12 Nov 2013 Link to this post

    ok I found it.

    cellPaymentDetails.ColumnSpan = 5;

    Rob
  3. UI for WPF is Visual Studio 2017 Ready
Back to Top