RestoreHiddenColumns
        (
            ListObject table,
            ExcelHiddenColumns excelHiddenColumns
        )
        {
            Debug.Assert(table != null);
            Debug.Assert(excelHiddenColumns != null);

            foreach (String sColumnName in excelHiddenColumns)
            {
                ListColumn oColumn;

                if (ExcelTableUtil.TryGetTableColumn(table, sColumnName,
                                                     out oColumn))
                {
                    ShowOrHideColumn(oColumn, false);
                }
            }
        }
        ShowHiddenColumns
        (
            ListObject table
        )
        {
            Debug.Assert(table != null);

            ExcelHiddenColumns oExcelHiddenColumns = new ExcelHiddenColumns();

            foreach (ListColumn oColumn in table.ListColumns)
            {
                if ((Boolean)oColumn.Range.EntireColumn.Hidden)
                {
                    oExcelHiddenColumns.AddLast(oColumn.Name);
                    ShowOrHideColumn(oColumn, true);
                }
            }

            return(oExcelHiddenColumns);
        }