public static bool ExportToExcel(RevisionData selected,
                                         RevOrderMgr om)
        {
            List <List <string> > data =
                AggregateData(selected, om, REV_SORT_ITEM_DESC);

            int row = TITLE_ROW;

            string outFile = SetUpOutputFile(Setg.TemplatePathAndFileName,
                                             Setg.ExcelPathAndFileName);

            X.Application excel = new X.Application();
            if (excel == null)
            {
                return(false);
            }

            X.Workbook  wb     = excel.Workbooks.Open(outFile);
            X.Worksheet wsData =
                wb.Sheets[Setg.ExcelDataWorksheetName] as X.Worksheet;

            if (wsData == null)
            {
                return(false);
            }

            excel.Visible = false;

            ExportColumnTitles(wsData, row, om);

            row++;

            //                           startRow         row count
            X.Range range = GetRange(wsData, row, data.Count,
                                     // startCol   colCount
                                     1, om.ColumnOrder.Count);

            FormatDataCells(range);

            ExportToExcel(data, row, wsData, om);

            AdjustColumnWidthInRange(range.Columns, 1.5);

            X.Worksheet wsPivot =
                wb.Sheets[Setg.ExcelPivotWorksheetName] as X.Worksheet;

            X.PivotTable pivotTable =
                (X.PivotTable)wsPivot.PivotTables(Setg.ExcelPivotTableName);

            pivotTable.RefreshTable();

            excel.Visible = true;

            return(true);
        }