Smrf.NodeXL.ExcelTemplate.EdgeWorksheetReader.GetEdgeTable C# (CSharp) Method

GetEdgeTable() public method

public GetEdgeTable ( Microsoft workbook ) : ListObject
workbook Microsoft
return ListObject
    GetEdgeTable
    (
        Microsoft.Office.Interop.Excel.Workbook workbook
    )
    {
        Debug.Assert(workbook != null);
        AssertValid();

        // Get the worksheet that contains edge data.

        Worksheet oEdgeWorksheet;

        if ( !ExcelUtil.TryGetWorksheet(workbook, WorksheetNames.Edges,
            out oEdgeWorksheet) )
        {
            OnWorkbookFormatError( String.Format(

                "The workbook must contain a worksheet named \"{0}\" that"
                + " contains edge data.\r\n\r\n{1}"
                ,
                WorksheetNames.Edges,
                ErrorUtil.GetTemplateMessage()
                ) );
        }

        // Get the table (ListObject) that contains edge data.

        ListObject oEdgeTable;

        if (!ExcelTableUtil.TryGetTable(oEdgeWorksheet, TableNames.Edges,
            out oEdgeTable) )
        {
            OnWorkbookFormatError( String.Format(

                "The worksheet named \"{0}\" must have a table named \"{1}\""
                + " that contains edge data.\r\n\r\n{2}"
                ,
                WorksheetNames.Edges,
                TableNames.Edges,
                ErrorUtil.GetTemplateMessage()
                ) );
        }

        // Make sure the vertex name columns exist.

        GetTableColumnIndex(oEdgeTable, EdgeTableColumnNames.Vertex1Name,
            true);

        GetTableColumnIndex(oEdgeTable, EdgeTableColumnNames.Vertex2Name,
            true);

        return (oEdgeTable);
    }

Usage Example

        GetRequiredTables
        (
            Microsoft.Office.Interop.Excel.Workbook oWorkbook,
            out ListObject oEdgeTable,
            out ListObject oVertexTable
        )
        {
            Debug.Assert(oWorkbook != null);
            AssertValid();

            // Get the required table that contains edge data.  GetEdgeTable()
            // checks for the required vertex name columns.

            EdgeWorksheetReader oEdgeWorksheetReader = new EdgeWorksheetReader();

            oEdgeTable = oEdgeWorksheetReader.GetEdgeTable(oWorkbook);

            // Normally, the vertex table isn't required, but to avoid having to
            // create the table in code if it's missing, require it here.

            if (ExcelTableUtil.TryGetTable(oWorkbook, WorksheetNames.Vertices,
                                           TableNames.Vertices, out oVertexTable))
            {
                // Make sure the vertex name column exists.

                ListColumn oColumn;

                if (!ExcelTableUtil.TryGetTableColumn(oVertexTable,
                                                      VertexTableColumnNames.VertexName, out oColumn))
                {
                    oVertexTable = null;
                }
            }
            else
            {
                oVertexTable = null;
            }

            if (oVertexTable == null)
            {
                throw new WorkbookFormatException(String.Format(

                                                      "To use this feature, there must be a worksheet named \"{0}\""
                                                      + " that contains a table named \"{1}\", and that table must"
                                                      + " contain a column named \"{2}\"."
                                                      + "\r\n\r\n"
                                                      + "{3}"
                                                      ,
                                                      WorksheetNames.Vertices,
                                                      TableNames.Vertices,
                                                      VertexTableColumnNames.VertexName,
                                                      ErrorUtil.GetTemplateMessage()
                                                      ));
            }
        }
All Usage Examples Of Smrf.NodeXL.ExcelTemplate.EdgeWorksheetReader::GetEdgeTable