public void Process()
        {
            WBReportExcel reportExcel = new WBReportExcel();

            reportExcel.AddProgressReportObserver(this);
            if (reportExcel.Open(sourceFileName) == false)
            {
                return;
            }

            bool debugMode = false;

            if (debugMode)
            {
                reportExcel.SetVisibility(true);
                ProcessExcelReport(reportExcel);
                SendProgressReportUpdate("Обработка файла завершилась успешно.");
            }
            else
            {
                try
                {
                    ProcessExcelReport(reportExcel);
                    SendProgressReportUpdate("Обработка файла завершилась успешно.");
                }
                catch
                {
                    SendProgressReportUpdate("Обработка файла завершилась с ошибкой!");
                }
                reportExcel.SetVisibility(true);
            }
        }
        void ProcessExcelReport(WBReportExcel reportExcel)
        {
            reportExcel.RemoveColumnWithSubHeader("Баркод");
            reportExcel.RemoveColumnWithSubHeader("Размер");
            reportExcel.RemoveColumnWithSubHeader("Контракт");

            reportExcel.RemoveColumnWithHeaderAndSubHeader("Поступления", "с-с, руб");
            reportExcel.RemoveColumnWithHeaderAndSubHeader("Поступления", "шт");

            reportExcel.RemoveColumnWithHeaderAndSubHeader("Заказано", "с-с, руб");

            reportExcel.RemoveColumnWithHeaderAndSubHeader("Максимально", "заказано шт в день");

            reportExcel.RemoveColumnWithHeaderAndSubHeader("Возвраты до оплаты", "с-с, руб");
            reportExcel.RemoveColumnWithHeaderAndSubHeader("Возвраты до оплаты", "шт");

            reportExcel.RemoveColumnWithHeaderAndSubHeader("Продажи по оплатам", "с-с + вознагр, руб");

            reportExcel.RemoveColumnWithHeaderAndSubHeader("Возвраты со склада поставщику", "с-с, руб");
            reportExcel.RemoveColumnWithHeaderAndSubHeader("Возвраты со склада поставщику", "шт");

            int keyColumn = reportExcel.FindColumnNumberBySubHeader("Артикул поставщика");

            int[] valueColumns =
            {
                reportExcel.FindColumnNumberByHeaderAndSubHeader("Заказано",           "шт"),
                reportExcel.FindColumnNumberByHeaderAndSubHeader("Продажи по оплатам", "шт"),
                reportExcel.FindColumnNumberByHeaderAndSubHeader("Текущий",            "остаток, шт")
            };
            reportExcel.RollUp(keyColumn, valueColumns);

            int inputForTemplateColumn = reportExcel.FindColumnNumberBySubHeader("Номенклатура (код 1С)");

            reportExcel.AddColumnByTemplate("", "Ссылка", "https://www.wildberries.ru/catalog/%1/detail.aspx", inputForTemplateColumn, 60);

            reportExcel.AddSubtotals(valueColumns);
            reportExcel.SetAutoFilterOnSubHeader();


            int brandColumn = reportExcel.FindColumnNumberBySubHeader("Бренд");

            reportExcel.CreateSubtotalsWorksheet("Итоги по брендам", brandColumn, valueColumns);


            reportExcel.InitiateSaveAs(BuildFileNameFromReportTitle(reportExcel.GetReportTitle()));
        }