コード例 #1
0
        private void AppendReport(Excel.Workbook destWorkbook, Excel.Worksheet copyDestSheet, string sheetName, string sourceBeginCell, string sourceEndCell, string destBeginCell, string reportFile, int sequence)
        {
            if (File.Exists(reportFile))
            {
                Excel.Workbook sourceBook = null;

                try
                {
                    sourceBook = excel.Workbooks.Open(reportFile);
                    Excel.Worksheet workingSheet = sourceBook.Worksheets[1];
                    workingSheet.Name = sheetName + sequence;

                    Excel.Worksheet tempWorkSheet = destWorkbook.Sheets[1] as Excel.Worksheet;
                    workingSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copySourceSheet = destWorkbook.Worksheets[sheetName + sequence];

                    ExcelUtilies.CopyRange(copySourceSheet, sourceBeginCell, sourceEndCell, copyDestSheet, destBeginCell);
                }
                catch (Exception ex)
                {
                    this.Logger.Error(string.Format("Append {0} report failed! \n {1}", sheetName, ex.StackTrace));
                    throw;
                }
                finally
                {
                    FunnelReportHelper.CloseWorkingWorkbook(sourceBook);
                }
            }
        }
コード例 #2
0
        private void AppendReport(Excel.Workbook destWorkbook, Excel.Worksheet copyDestSheet, string sheetName, string column, string columnHeader, string reportFile, int sequence)
        {
            if (File.Exists(reportFile))
            {
                Excel.Workbook sourceBook = null;

                try
                {
                    sourceBook = excel.Workbooks.Open(reportFile);
                    Excel.Worksheet workingSheet = sourceBook.Worksheets[1];
                    workingSheet.Name = sheetName + sequence;

                    Excel.Worksheet tempWorkSheet = destWorkbook.Sheets[1] as Excel.Worksheet;
                    workingSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copySourceSheet = destWorkbook.Worksheets[sheetName + sequence];

                    //copy week report to dest
                    if (copySourceSheet.Cells[1, 1].Text == "Spot Rate")
                    {
                        ExcelUtilies.CopyRange(copySourceSheet, "B1", "B" + FunnelMonthlyReportParameters.RowCount, copyDestSheet, column + "2");
                    }
                    else
                    {
                        ExcelUtilies.CopyRange(copySourceSheet, "B1", "B" + FunnelMonthlyReportParameters.RowCount, copyDestSheet, column + "1");
                    }
                }
                catch (Exception ex)
                {
                    this.Logger.Error(string.Format("Append {0} report failed! \n {1}", sheetName, ex.StackTrace));
                    throw;
                }
                finally
                {
                    FunnelReportHelper.CloseWorkingWorkbook(sourceBook);
                }
            }

            copyDestSheet.Cells[1, column]            = columnHeader;
            copyDestSheet.Cells[1, column].Font.Bold  = true;
            copyDestSheet.Cells[1, column].Font.Size  = 10;
            copyDestSheet.Columns[column].ColumnWidth = 15;
        }
コード例 #3
0
        private void AppendReport(Excel.Workbook destWorkbook, Excel.Worksheet copyDestSheetBefore, string sheetName, string column, string reportFile, int sequence)
        {
            if (File.Exists(reportFile))
            {
                Excel.Workbook sourceBook = null;

                try
                {
                    sourceBook = destWorkbook.Application.Workbooks.Open(reportFile);
                    Excel.Worksheet workingSheet = sourceBook.Worksheets[1];
                    workingSheet.Name = sheetName + sequence;

                    Excel.Worksheet tempWorkSheet = destWorkbook.Sheets[1] as Excel.Worksheet;
                    workingSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copySourceSheet = destWorkbook.Worksheets[sheetName + sequence];

                    //copy week report to dest
                    if (string.IsNullOrWhiteSpace(copySourceSheet.Cells[1, 1].Text))
                    {
                        ExcelUtilies.CopyRange(copySourceSheet, "B2", "B" + FunnelMonthlyReportParameters.OutputRowCount, copyDestSheetBefore, column + "1");
                    }
                    else
                    {
                        ExcelUtilies.CopyRange(copySourceSheet, "B1", "B" + FunnelMonthlyReportParameters.OutputRowCount, copyDestSheetBefore, column + "1");
                    }
                }
                catch (Exception ex)
                {
                    this.Logger.Error(string.Format("Append {0} report failed! \n {1}", sheetName, ex.StackTrace));
                    throw;
                }
                finally
                {
                    FunnelReportHelper.CloseWorkingWorkbook(sourceBook);
                }
            }
        }
コード例 #4
0
        public bool MergeFiles(Dictionary <string, ReportContext> MergedFiles, string outputFile, out string mergedFile)
        {
            mergedFile = string.Empty;

            if (this.Logger == null)
            {
                this.Logger = new QVConfigLog();
            }

            this.Logger.Message("Beigin to merge funnel revenue reports.");
            excel = new Excel.Application();

            Dictionary <string, string> totalReports   = FunnelReportHelper.GetMergedFilesByCategory(MergedFiles, "Total");
            Dictionary <string, string> tsReports      = FunnelReportHelper.GetMergedFilesByCategory(MergedFiles, "TS");
            Dictionary <string, string> onlineReports  = FunnelReportHelper.GetMergedFilesByCategory(MergedFiles, "Online");
            Dictionary <string, string> partnerReports = FunnelReportHelper.GetMergedFilesByCategory(MergedFiles, "Partner");
            Dictionary <string, string> smeReports     = FunnelReportHelper.GetMergedFilesByCategory(MergedFiles, "SME");

            Excel.Workbook tempWorkbook = null;
            Excel.Workbook bookDest     = null;

            try
            {
                tempWorkbook = excel.Workbooks.Add(Missing.Value);

                //create a new work sheet
                Excel.Worksheet tempWorkSheet = tempWorkbook.Worksheets[1] as Excel.Worksheet;

                this.Logger.Message("Copy to tempwork.");

                foreach (var item in totalReports.Keys)
                {
                    totalBook = excel.Workbooks.Open(totalReports[item]);
                    Excel.Worksheet totalSheet = totalBook.Worksheets[1];
                    totalSheet.Name = item;

                    //copy month report to dest
                    //Column
                    totalSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copyDestSheet = tempWorkbook.Worksheets[item];

                    //append TS reports
                    //Column
                    if (tsReports.ContainsKey(item))
                    {
                        TSBook = excel.Workbooks.Open(tsReports[item]);
                        Excel.Worksheet weekSheet = TSBook.Worksheets[1];
                        weekSheet.Name = item + "1";

                        weekSheet.Copy(Missing.Value, tempWorkSheet);
                        Excel.Worksheet copySourceSheet = tempWorkbook.Worksheets[item + "1"];

                        //copy week report to dest
                        ExcelUtilies.CopyRange(copySourceSheet, "A1", WeeklyStatisticReportParameters.TSColumn + WeeklyStatisticReportParameters.TSRowCount, copyDestSheet, "A22");
                        //ExcelUtilies.ReleaseComObject(weekSheet);
                    }

                    //append Online report
                    //Column
                    if (onlineReports.ContainsKey(item))
                    {
                        onlineBook = excel.Workbooks.Open(onlineReports[item]);
                        Excel.Worksheet weekSheet = onlineBook.Worksheets[1];
                        weekSheet.Name = item + "2";

                        weekSheet.Copy(Missing.Value, tempWorkSheet);
                        Excel.Worksheet copySourceSheet = tempWorkbook.Worksheets[item + "2"];

                        //copy week report to dest
                        ExcelUtilies.CopyRange(copySourceSheet, "A1", WeeklyStatisticReportParameters.OnlineColumn + WeeklyStatisticReportParameters.OnlineRowCount, copyDestSheet, "A40");
                        //ExcelUtilies.ReleaseComObject(weekSheet);
                    }

                    //append Partner revenue
                    //Column
                    this.Logger.Message("append Partner revenue," + partnerReports.Count);
                    if (partnerReports.ContainsKey(item))
                    {
                        this.Logger.Message("append Partner revenue");
                        partnerBook = excel.Workbooks.Open(partnerReports[item]);
                        Excel.Worksheet weekSheet = partnerBook.Worksheets[1];
                        weekSheet.Name = item + "3";

                        weekSheet.Copy(Missing.Value, tempWorkSheet);
                        Excel.Worksheet copySourceSheet = tempWorkbook.Worksheets[item + "3"];

                        //copy week report to dest
                        ExcelUtilies.CopyRange(copySourceSheet, "A1", WeeklyStatisticReportParameters.PartnerColumn + WeeklyStatisticReportParameters.PartnerRowCount, copyDestSheet, "A62");
                        //ExcelUtilies.ReleaseComObject(weekSheet);
                    }

                    //append SME revenue
                    //Column
                    if (smeReports.ContainsKey(item))
                    {
                        this.Logger.Message("append SME revenue");
                        smeBook = excel.Workbooks.Open(smeReports[item]);
                        Excel.Worksheet weekSheet = smeBook.Worksheets[1];
                        weekSheet.Name = item + "4";

                        weekSheet.Copy(Missing.Value, tempWorkSheet);
                        Excel.Worksheet copySourceSheet = tempWorkbook.Worksheets[item + "4"];

                        //copy week report to dest
                        ExcelUtilies.CopyRange(copySourceSheet, "A1", WeeklyStatisticReportParameters.SMEColumn + WeeklyStatisticReportParameters.SMERowCount, copyDestSheet, "A85");
                        //ExcelUtilies.ReleaseComObject(weekSheet);
                    }

                    copyDestSheet.Range["A1", WeeklyStatisticReportParameters.TotalColumn + "110"].Interior.ColorIndex = 0;

                    Excel.Range range = copyDestSheet.Range["A1"];
                    range.EntireRow.Insert(Excel.XlInsertShiftDirection.xlShiftDown);
                    //ExcelUtilies.ReleaseComObject(range);

                    this.SetTitle(copyDestSheet, 1, 1, "Total by product");
                    this.SetTitle(copyDestSheet, 22, 1, "Telesales");
                    this.SetTitle(copyDestSheet, 40, 1, "Online");
                    this.SetTitle(copyDestSheet, 62, 1, "Partner revenue");
                    this.SetTitle(copyDestSheet, 85, 1, "SME revenue");

                    if (GeneralParameters.KFR2 == false && GeneralParameters.KFR1 == false && GeneralParameters.KFR3 == false)
                    {
                        ExcelUtilies.DeleteColumns(copyDestSheet, "U", "AC");
                        ExcelUtilies.DeleteColumns(copyDestSheet, "I", "N");
                    }
                    else if (GeneralParameters.KFR1 == true && GeneralParameters.KFR2 == false && GeneralParameters.KFR3 == false)
                    {
                        ExcelUtilies.DeleteColumns(copyDestSheet, "X", "AC");
                        ExcelUtilies.DeleteColumns(copyDestSheet, "K", "N");
                    }
                    else if (GeneralParameters.KFR1 == true && GeneralParameters.KFR2 == true && GeneralParameters.KFR3 == false)
                    {
                        ExcelUtilies.DeleteColumns(copyDestSheet, "AA", "AC");
                        ExcelUtilies.DeleteColumns(copyDestSheet, "M", "N");
                    }

                    //ExcelUtilies.ReleaseComObject(copyDestSheet);
                    //close working workbook
                    this.CloseSourceReportsExcel();
                }

                //Copy KFR revenue to tempWorkSheet
                this.CopyKFRRevenue2SheetDest(tempWorkbook, MergedFiles);

                this.Logger.Message("Create dest book.");
                bookDest = excel.Workbooks.Add(Missing.Value);
                //get the first sheet of dest book
                this.Logger.Message("get the first sheet of dest book");
                Excel.Worksheet sheetDest = bookDest.Worksheets[1] as Excel.Worksheet;

                //copy to dest from temp workbook
                this.Logger.Message("copy to dest from temp workbook.");
                foreach (var item in tempWorkbook.Worksheets)
                {
                    Excel.Worksheet sheet = item as Excel.Worksheet;
                    if (totalReports.Keys.Contains(sheet.Name))
                    {
                        sheet.Copy(Missing.Value, sheetDest);
                    }
                    else if (sheet.Name == "KFR Revenue")
                    {
                        sheet.Copy(sheetDest, Missing.Value);
                    }
                }

                //delete sheet1 sheet2 sheet3
                excel.DisplayAlerts = false;
                this.Logger.Message("delete sheet1 sheet2 sheet3");
                foreach (var item in bookDest.Worksheets)
                {
                    Excel.Worksheet sheet = item as Excel.Worksheet;
                    if (!totalReports.Keys.Contains(sheet.Name) && sheet.Name != "KFR Revenue")
                    {
                        sheet.Delete();
                    }
                }

                //clear the temp workbook
                this.Logger.Message("clear the temp workbook");
                FunnelReportHelper.SaveTempWorkbook(tempWorkbook);

                //save the dest
                this.Logger.Message("save the dest.");
                mergedFile = outputFile.Replace(".xls", "_" + DateTime.Now.LastWeekendDate().WeekOfYearString() + ".xls");
                //mergedFile = outputFile.Replace(".xls", "_" + DateTime.Now.LatestTwoWeeksEndDate().WeekOfYearString() + ".xls");
                if (File.Exists(mergedFile))
                {
                    File.Delete(mergedFile);
                }
                bookDest.SaveAs(mergedFile);
                bookDest.Close();
                excel.DisplayAlerts = true;
            }
            catch (Exception ex)
            {
                this.Logger.Error(ex.Message + "\n" + ex.StackTrace);

                excel.DisplayAlerts = false;

                this.CloseSourceReportsExcel();
                FunnelReportHelper.SaveTempWorkbook(tempWorkbook);


                excel.DisplayAlerts = true;
                throw;
            }
            finally
            {
                excel.Application.Quit();
                //ExcelUtilies.ReleaseComObject(excel);
                //excel = null;
                //System.GC.Collect();

                ExcelUtilies.Kill(excel);
            }

            return(true);
        }
コード例 #5
0
        private void CopyKFRRevenue2SheetDest(Excel.Workbook tempWorkbook, Dictionary <string, ReportContext> MergedFiles)
        {
            Dictionary <string, string> KFRRevenueReports = FunnelReportHelper.GetMergedFilesByCategory(MergedFiles, "KFRRevenue");

            if (MergedFiles.ContainsKey("FunnelRevenue_KFRRevenue_NotSet"))
            {
                ReportContext report = MergedFiles["FunnelRevenue_KFRRevenue_NotSet"];

                Excel.Worksheet tempWorkSheet = tempWorkbook.Worksheets[1] as Excel.Worksheet;

                totalBook = excel.Workbooks.Open(report.OutputFullName);
                Excel.Worksheet totalSheet = totalBook.Worksheets[1];
                totalSheet.Name = "KFR Revenue";

                //copy month report to dest
                //Column
                totalSheet.Copy(Missing.Value, tempWorkSheet);
                Excel.Worksheet copyDestSheet = tempWorkbook.Worksheets["KFR Revenue"];

                //append TS reports
                //Column
                if (MergedFiles.ContainsKey("FunnelRevenue_KFRRevenue_CH157"))
                {
                    report = MergedFiles["FunnelRevenue_KFRRevenue_CH157"];
                    TSBook = excel.Workbooks.Open(report.OutputFullName);
                    Excel.Worksheet weekSheet = TSBook.Worksheets[1];
                    weekSheet.Name = report.Description;

                    weekSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copySourceSheet = tempWorkbook.Worksheets[report.Description];

                    //copy week report to dest
                    ExcelUtilies.CopyRange(copySourceSheet, "A1", WeeklyStatisticReportParameters.KFRRevenueColumn + WeeklyStatisticReportParameters.KFRRevenueRowCount, copyDestSheet, "A21");
                    //ExcelUtilies.ReleaseComObject(weekSheet);
                }

                //append Online report
                //Column
                if (MergedFiles.ContainsKey("FunnelRevenue_KFRRevenue_CH157"))
                {
                    report     = MergedFiles["FunnelRevenue_KFRRevenue_CH159"];
                    onlineBook = excel.Workbooks.Open(report.OutputFullName);
                    Excel.Worksheet weekSheet = onlineBook.Worksheets[1];
                    weekSheet.Name = report.Description;

                    weekSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copySourceSheet = tempWorkbook.Worksheets[report.Description];

                    //copy week report to dest
                    ExcelUtilies.CopyRange(copySourceSheet, "A1", WeeklyStatisticReportParameters.KFRRevenueColumn + WeeklyStatisticReportParameters.KFRRevenueRowCount, copyDestSheet, "A38");
                    //ExcelUtilies.ReleaseComObject(weekSheet);
                }

                //append Partner report
                //Column
                if (MergedFiles.ContainsKey("FunnelRevenue_KFRRevenue_CH184"))
                {
                    report      = MergedFiles["FunnelRevenue_KFRRevenue_CH184"];
                    partnerBook = excel.Workbooks.Open(report.OutputFullName);
                    Excel.Worksheet weekSheet = partnerBook.Worksheets[1];
                    weekSheet.Name = report.Description;

                    weekSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copySourceSheet = tempWorkbook.Worksheets[report.Description];

                    //copy week report to dest
                    ExcelUtilies.CopyRange(copySourceSheet, "A1", WeeklyStatisticReportParameters.KFRRevenueColumn + WeeklyStatisticReportParameters.KFRRevenueRowCount, copyDestSheet, "A58");
                    //ExcelUtilies.ReleaseComObject(weekSheet);
                }

                //append SME report
                //Column
                if (MergedFiles.ContainsKey("FunnelRevenue_KFRRevenue_CH185"))
                {
                    report  = MergedFiles["FunnelRevenue_KFRRevenue_CH185"];
                    smeBook = excel.Workbooks.Open(report.OutputFullName);
                    Excel.Worksheet weekSheet = smeBook.Worksheets[1];
                    weekSheet.Name = report.Description;

                    weekSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copySourceSheet = tempWorkbook.Worksheets[report.Description];

                    //copy week report to dest
                    ExcelUtilies.CopyRange(copySourceSheet, "A1", WeeklyStatisticReportParameters.KFRRevenueColumn + WeeklyStatisticReportParameters.KFRRevenueRowCount, copyDestSheet, "A78");
                    //ExcelUtilies.ReleaseComObject(weekSheet);
                }

                copyDestSheet.Range["A1", WeeklyStatisticReportParameters.TotalColumn + "106"].Interior.ColorIndex = 0;

                if (GeneralParameters.KFR2 == false && GeneralParameters.KFR1 == false && GeneralParameters.KFR3 == false)
                {
                    ExcelUtilies.DeleteColumns(copyDestSheet, "S", "AA");
                    ExcelUtilies.DeleteColumns(copyDestSheet, "G", "L");
                }
                else if (GeneralParameters.KFR1 == true && GeneralParameters.KFR2 == false && GeneralParameters.KFR3 == false)
                {
                    ExcelUtilies.DeleteColumns(copyDestSheet, "V", "AA");
                    ExcelUtilies.DeleteColumns(copyDestSheet, "I", "L");
                }
                else if (GeneralParameters.KFR1 == true && GeneralParameters.KFR2 == true && GeneralParameters.KFR3 == false)
                {
                    ExcelUtilies.DeleteColumns(copyDestSheet, "Y", "AA");
                    ExcelUtilies.DeleteColumns(copyDestSheet, "K", "L");
                }

                //ExcelUtilies.ReleaseComObject(copyDestSheet);
                this.CloseSourceReportsExcel();
            }
        }
コード例 #6
0
        private Excel.Workbook MergedOutputFiles(Excel.Application excel, Dictionary <string, ReportContext> MergedFiles)
        {
            Dictionary <string, string> thisMonthReports = FunnelReportHelper.GetOutputMergedFilesByCategory(MergedFiles, "ThisMonth");
            Dictionary <string, string> monthReports     = FunnelReportHelper.GetOutputMergedFilesByCategory(MergedFiles, "1011Month");
            Dictionary <string, string> monthDiffReports = FunnelReportHelper.GetOutputMergedFilesByCategory(MergedFiles, "MonthDiff");

            Dictionary <string, string> actualReports       = FunnelReportHelper.GetOutputMergedFilesByCategory(MergedFiles, "Actuals");
            Dictionary <string, string> KFRxReports         = FunnelReportHelper.GetOutputMergedFilesByCategory(MergedFiles, "KFRx");
            Dictionary <string, string> DiffReports         = FunnelReportHelper.GetOutputMergedFilesByCategory(MergedFiles, "Diff");
            Dictionary <string, string> PriorYearReports    = FunnelReportHelper.GetOutputMergedFilesByCategory(MergedFiles, "PriorYear");
            Dictionary <string, string> PriorYearDiffReport = FunnelReportHelper.GetOutputMergedFilesByCategory(MergedFiles, "PriorYearDiff");

            if (thisMonthReports.Count == 0)
            {
                return(null);
            }
            Excel.Workbook tempWorkbook = null;

            try
            {
                this.Logger.Message("Create tempWorkbook.");
                tempWorkbook = excel.Workbooks.Add(Missing.Value);
                //this.AddCategoryOutputSheet(tempWorkbook);

                this.Logger.Message("Create Output Sheets.");
                Excel.Worksheet outputTotalSheet = tempWorkbook.Sheets.Add();
                outputTotalSheet.Name = OutputTotal;
                Excel.Worksheet outputJapanSheet = tempWorkbook.Sheets.Add();
                outputJapanSheet.Name = OutputJPKR;
                Excel.Worksheet outputBrazilSheet = tempWorkbook.Sheets.Add();
                outputBrazilSheet.Name = OutputBrazil;
                Excel.Worksheet outputEuropeSheet = tempWorkbook.Sheets.Add();
                outputEuropeSheet.Name = OutputEurope;
                Excel.Worksheet outputMXUSSheet = tempWorkbook.Sheets.Add();
                outputMXUSSheet.Name = OutputMXUS;
                Excel.Worksheet outputOthersSheet = tempWorkbook.Sheets.Add();
                outputOthersSheet.Name = OutputOthers;

                //create a new work sheet
                Excel.Worksheet tempWorkSheet = tempWorkbook.Worksheets[1] as Excel.Worksheet;


                this.Logger.Message("Copy to tempwork.");

                foreach (var item in actualReports.Keys)
                {
                    thisMonthBook = excel.Workbooks.Open(thisMonthReports[item]);
                    Excel.Worksheet thisMonthSheet = thisMonthBook.Worksheets[1];
                    thisMonthSheet.Name = item;

                    //copy month report to dest
                    //Column B - M
                    thisMonthSheet.Copy(Missing.Value, tempWorkSheet);
                    Excel.Worksheet copyDestSheet = tempWorkbook.Worksheets[item];

                    if (string.IsNullOrWhiteSpace(copyDestSheet.Cells[1, 1].Text))
                    {
                        ExcelUtilies.DeleteRow(copyDestSheet, "A1");
                    }

                    //month
                    if (monthReports.ContainsKey(item))
                    {
                        this.AppendReport(tempWorkbook, copyDestSheet, item, FunnelMonthlyReportParameters.OutputMonth, monthReports[item], 1);
                    }
                    //monthDiff
                    if (monthDiffReports.ContainsKey(item))
                    {
                        this.AppendReport(tempWorkbook, copyDestSheet, item, FunnelMonthlyReportParameters.OutputMonthDiff, monthDiffReports[item], 2);
                    }
                    //Actuals
                    if (actualReports.ContainsKey(item))
                    {
                        this.AppendReport(tempWorkbook, copyDestSheet, item, FunnelMonthlyReportParameters.OutputActuals, actualReports[item], 3);
                    }
                    //KFR1
                    if (KFRxReports.ContainsKey(item))
                    {
                        this.AppendReport(tempWorkbook, copyDestSheet, item, FunnelMonthlyReportParameters.OutputKFR1, KFRxReports[item], 4);
                    }
                    //Diff
                    if (DiffReports.ContainsKey(item))
                    {
                        this.AppendReport(tempWorkbook, copyDestSheet, item, FunnelMonthlyReportParameters.OutputDiff, DiffReports[item], 5);
                    }
                    //PriorYear
                    if (PriorYearReports.ContainsKey(item))
                    {
                        this.AppendReport(tempWorkbook, copyDestSheet, item, FunnelMonthlyReportParameters.OutputPriorYear, PriorYearReports[item], 6);
                    }
                    //PriorYearDiff
                    if (PriorYearDiffReport.ContainsKey(item))
                    {
                        this.AppendReport(tempWorkbook, copyDestSheet, item, FunnelMonthlyReportParameters.OutputPriorYearDiff, PriorYearDiffReport[item], 7);
                    }

                    if (!string.IsNullOrWhiteSpace(copyDestSheet.Cells[1, 1].Text))
                    {
                        ExcelUtilies.InsertRow(copyDestSheet, "A1");
                    }

                    this.SetHeaderTitle(copyDestSheet);

                    this.CloseOutputSourceReportsExcel();

                    #region Category output
                    Logger.Message("Category output " + item);
                    this.FormatOutputCells(copyDestSheet);
                    copyDestSheet.Activate();
                    if (item == "Japan")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputJapanSheet, "A3");
                        outputJapanSheet.Cells[2, 1] = item;
                    }
                    else if (item == "Korea")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputJapanSheet, "A21");
                        outputJapanSheet.Cells[20, 1] = item;
                    }
                    else if (item == "Total")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputTotalSheet, "A3");
                        outputTotalSheet.Cells[2, 1] = item;
                    }
                    else if (item == "Brazil")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputBrazilSheet, "A3");
                        outputBrazilSheet.Cells[2, 1] = item;
                    }
                    else if (item == "Europe")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputEuropeSheet, "A3");
                        outputEuropeSheet.Cells[2, 1] = item;
                    }
                    else if (item == "Spain")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputEuropeSheet, "A19");
                        outputEuropeSheet.Cells[18, 1] = item;
                    }
                    else if (item == "MEAST")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputEuropeSheet, "A37");
                        outputEuropeSheet.Cells[36, 1] = item;
                    }
                    else if (item == "ROE")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputEuropeSheet, "A55");
                        outputEuropeSheet.Cells[54, 1] = item;
                    }
                    else if (item == "Italy")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputEuropeSheet, "A73");
                        outputEuropeSheet.Cells[72, 1] = item;
                    }
                    else if (item == "Germany")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputEuropeSheet, "A91");
                        outputEuropeSheet.Cells[90, 1] = item;
                    }
                    else if (item == "France")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputEuropeSheet, "A109");
                        outputEuropeSheet.Cells[108, 1] = item;
                    }
                    else if (item == "Mexico+US+ROLA")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputMXUSSheet, "A3");
                        outputMXUSSheet.Cells[2, 1] = item;
                    }
                    else if (item == "US")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputMXUSSheet, "A19");
                        outputMXUSSheet.Cells[18, 1] = item;
                    }
                    else if (item == "Mexico")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputMXUSSheet, "A37");
                        outputMXUSSheet.Cells[36, 1] = item;
                    }
                    else if (item == "ROLA")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputMXUSSheet, "A55");
                        outputMXUSSheet.Cells[54, 1] = item;
                    }
                    else if (item == "ROA")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputOthersSheet, "A3");
                        outputOthersSheet.Cells[2, 1] = item;
                    }
                    else if (item == "ROW")
                    {
                        ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputOthersSheet, "A19");
                        outputOthersSheet.Cells[18, 1] = item;
                    }
                    //else if (item == "Thailand")
                    //{
                    //    ExcelUtilies.CopyRange(copyDestSheet, "A1", "I13", outputOthersSheet, "A37");
                    //    outputOthersSheet.Cells[36, 1] = item;
                    //}

                    #endregion
                }

                this.FormatOutputColumnWidth(outputJapanSheet);
                this.FormatOutputColumnWidth(outputTotalSheet);
                this.FormatOutputColumnWidth(outputMXUSSheet);
                this.FormatOutputColumnWidth(outputOthersSheet);
                this.FormatOutputColumnWidth(outputBrazilSheet);
                this.FormatOutputColumnWidth(outputEuropeSheet);
            }
            catch (Exception ex)
            {
                this.CloseOutputSourceReportsExcel();
                throw;
            }

            return(tempWorkbook);
        }