private void SheetDistribution(ref XLWorkbook workbook)
        {
            // This is invariant
            NumberFormatInfo format = new NumberFormatInfo();

            // Set the 'splitter' for thousands
            format.NumberGroupSeparator = ".";
            // Set the decimal seperator
            format.NumberDecimalSeparator = ",";

            string sheetName = "Distribution";
            string fileName  = "Distribution.dat";
            string mask      = "";

            var worksheet01 = workbook.Worksheets.Add(sheetName);

            //DADOS
            string        line;
            List <string> lines = new List <string>();

            using (ExtendedStreamReader file = new ExtendedStreamReader(dirWebExcel + @"\" + fileName, this.param.dataToProcess.Guid, false))
            {
                while ((line = file.ReadLine()) != null)
                {
                    if (String.IsNullOrEmpty(line))
                    {
                        break;
                    }

                    lines.Add(line);
                }
                file.Close();
                file.Dispose();
            }
            //FIM DADOS

            //HEADER
            worksheet01.Cell("A1").Value = sheetName;
            worksheet01.Cell("B1").Value = mask;
            worksheet01.Cell("C1").Value = mask;
            worksheet01.Cell("D1").Value = "idx";
            worksheet01.Cell("E1").Value = "mcStep";
            worksheet01.Cell("F1").Value = "rg2";
            worksheet01.Cell("G1").Value = "rg2(accumulated)";
            worksheet01.Cell("H1").Value = "<rg2>";
            worksheet01.Cell("I1").Value = "e";
            worksheet01.Cell("J1").Value = "e(accumulated)";
            worksheet01.Cell("K1").Value = "<e>";
            worksheet01.Cell("L1").Value = "U";
            worksheet01.Cell("M1").Value = "U(accumulated)";
            worksheet01.Cell("N1").Value = "<U>";

            //INFOS
            string comment = string.Empty;
            double value   = 0;
            int    i       = 0;

            //DATA
            long   idx, mcstep = 0;
            double rg, U, eE, eRG, eU, e, aE, aU, aRG;

            rg = U = eE = eRG = eU = e = aE = aU = aRG = 0;

            //PRIMEIRA PARTE COM HEADER
            for (i = 0; i < 8; i++)
            {
                string[] temp = lines[i].Split(':');
                comment = ConvertCustom.ToString(temp[0]);
                worksheet01.Cell("A" + (i + 2)).Value = comment;

                try
                {
                    value = ConvertCustom.ToDouble(temp[1]);
                    worksheet01.Cell("B" + (i + 2)).Value = value;
                }
                catch (FormatException)
                {
                    string strValue = Convert.ToString(temp[1]);
                    worksheet01.Cell("B" + (i + 2)).Value = strValue;
                }


                string[] tempResult = lines[i + 9].Split('\t');
                idx    = ConvertCustom.ToInt32(tempResult[0]);
                mcstep = ConvertCustom.ToInt32(tempResult[1]);

                rg  = double.Parse(tempResult[2], format);
                aRG = double.Parse(tempResult[3], format);
                eRG = double.Parse(tempResult[4], format);

                e  = double.Parse(tempResult[5], format);
                aE = double.Parse(tempResult[6], format);
                eE = double.Parse(tempResult[7], format);

                U  = double.Parse(tempResult[8], format);
                aU = double.Parse(tempResult[9], format);
                eU = double.Parse(tempResult[10], format);

                worksheet01.Cell("C" + (i + 2)).Value = mask;
                worksheet01.Cell("D" + (i + 2)).Value = idx;
                worksheet01.Cell("E" + (i + 2)).Value = mcstep;
                worksheet01.Cell("F" + (i + 2)).Value = rg;
                worksheet01.Cell("G" + (i + 2)).Value = aRG;
                worksheet01.Cell("H" + (i + 2)).Value = eRG;
                worksheet01.Cell("I" + (i + 2)).Value = e;
                worksheet01.Cell("J" + (i + 2)).Value = aE;
                worksheet01.Cell("K" + (i + 2)).Value = eE;
                worksheet01.Cell("L" + (i + 2)).Value = U;
                worksheet01.Cell("M" + (i + 2)).Value = aU;
                worksheet01.Cell("N" + (i + 2)).Value = eU;
            }

            //SEGUNDA PARTE
            for (int j = i; j < (lines.Count() - 9); j++)
            {
                worksheet01.Cell("A" + (j + 2)).Value = mask;
                worksheet01.Cell("B" + (j + 2)).Value = mask;
                worksheet01.Cell("C" + (j + 2)).Value = mask;

                string[] tempResult = lines[j + 9].Split('\t');
                idx    = ConvertCustom.ToInt32(tempResult[0]);
                mcstep = ConvertCustom.ToInt32(tempResult[1]);

                rg  = double.Parse(tempResult[2], format);
                aRG = double.Parse(tempResult[3], format);
                eRG = double.Parse(tempResult[4], format);

                e  = double.Parse(tempResult[5], format);
                aE = double.Parse(tempResult[6], format);
                eE = double.Parse(tempResult[7], format);

                U  = double.Parse(tempResult[8], format);
                aU = double.Parse(tempResult[9], format);
                eU = double.Parse(tempResult[10], format);


                worksheet01.Cell("D" + (j + 2)).Value = idx;
                worksheet01.Cell("E" + (j + 2)).Value = mcstep;
                worksheet01.Cell("F" + (j + 2)).Value = rg;
                worksheet01.Cell("G" + (j + 2)).Value = aRG;
                worksheet01.Cell("H" + (j + 2)).Value = eRG;
                worksheet01.Cell("I" + (j + 2)).Value = e;
                worksheet01.Cell("J" + (j + 2)).Value = aE;
                worksheet01.Cell("K" + (j + 2)).Value = eE;
                worksheet01.Cell("L" + (j + 2)).Value = U;
                worksheet01.Cell("M" + (j + 2)).Value = aU;
                worksheet01.Cell("N" + (j + 2)).Value = eU;
            }
            lines = null;
            //FIM DATASHEET
        }