public void TotalByCompany(string date_1, string date_2, object comapany, string company_name, string dates_1, string dates_2)
        {
            var GR = new General_Reestr();

            DataTable dataTable, Itog_Rep;

            string path = AppDomain.CurrentDomain.BaseDirectory + @"ReportTemplates\Реестр  за арендованных и  собственных вагон-цистерн компании.xlsx";

            using (SLDocument sl = new SLDocument(path))
            {
                sl.SelectWorksheet("ТОО Казыкурт");
                sl.RenameWorksheet("ТОО Казыкурт", "Реестр");

                string Refresh = "dbo.GetReportRenderedServices_v1 '" + date_1 + "','" + date_2 + "','" + comapany + "'";
                dataTable = DbConnection.DBConnect(Refresh);

                string GetCountServiceCost = "exec dbo.Itog_Report  '" + date_1 + "','" + date_2 + "','" + comapany + "'";
                Itog_Rep = DbConnection.DBConnect(GetCountServiceCost);

                sl.SetCellValue("C4", company_name);

                sl.SetCellValue("C6", "в ТОО Казыгурт-Юг c " + dates_1 + " по " + dates_2);

                var val = dataTable.Rows.Count + 16 + Itog_Rep.Rows.Count * 2;
                sl.CopyCell("B13", "K20", "B" + val, true);

                sl.ImportDataTable(10, 1, dataTable, false);
                sl.CopyCell("E10", "R" + Convert.ToString(dataTable.Rows.Count + 10), "G10", true);

                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    for (int j = 1; j < dataTable.Columns.Count + 3; j++)
                    {
                        sl.SetCellStyle(i + 10, j, GR.FormattingExcelCells(sl, true));
                    }
                }

                sl.SetCellValue(dataTable.Rows.Count + 12, 2, "=C6");
                sl.SetCellStyle(dataTable.Rows.Count + 12, 2, GR.FormattingExcelCells(sl, false));

                sl.SetCellValue(dataTable.Rows.Count + 14, 2, "Всего обработано вагонов - цистерн " + company_name + " по видам операций:");
                sl.SetCellStyle(dataTable.Rows.Count + 14, 2, GR.FormattingExcelCells(sl, false));

                //Итоговая сводка
                int    rowcount = 0;
                int    total    = 0;
                double EndSum   = 0;

                for (int i = 0; i < Itog_Rep.Rows.Count; i++)
                {
                    rowcount++;
                    double val1 = 1;
                    for (int j = 0; j < Itog_Rep.Columns.Count; j++)
                    {
                        if (j == 0)
                        {
                            sl.SetCellValue(i + dataTable.Rows.Count + 15 + rowcount, j + 2, Itog_Rep.Rows[i][j].ToString());
                            sl.SetCellStyle(i + dataTable.Rows.Count + 15 + rowcount, j + 2, GR.FormattingExcelCells(sl, false));
                        }
                        else
                        {
                            val1 = val1 * double.Parse(Itog_Rep.Rows[i][j].ToString());
                            sl.SetCellValue(i + dataTable.Rows.Count + 15 + rowcount, j + 12, Convert.ToDecimal(Itog_Rep.Rows[i][j].ToString()));
                            sl.SetCellStyle(i + dataTable.Rows.Count + 15 + rowcount, j + 12, GR.FormattingExcelCells(sl, false));
                        }
                    }
                    EndSum += val1;

                    if (i < Itog_Rep.Rows.Count && Itog_Rep.Rows[i][0].ToString() != "Текущий отцепочный ремонт горячей обработкой" && Itog_Rep.Rows[i][0].ToString() != "Текущий отцепочный ремонт" && Itog_Rep.Rows[i][0].ToString() != "Очистка от знака опастности")
                    {
                        total += int.Parse(Itog_Rep.Rows[i][1].ToString());
                    }
                    else
                    {
                        continue;
                    }
                }

                //sl.SetCellValue(dataTable.Rows.Count + 14, 13, total);

                sl.SetCellValue(dataTable.Rows.Count + 14, 13, dataTable.Rows.Count);
                sl.SetCellStyle(dataTable.Rows.Count + 14, 13, GR.FormattingExcelCells(sl, false));

                //Итоговая сумма
                sl.SetCellValue(dataTable.Rows.Count + Itog_Rep.Rows.Count * 2 + 16, 14, EndSum);
                sl.SetCellStyle(dataTable.Rows.Count + Itog_Rep.Rows.Count * 2 + 16, 14, GR.FormattingExcelCells(sl, false));

                sl.SaveAs(AppDomain.CurrentDomain.BaseDirectory + @"Report\" + company_name + " Реестр  за арендованных и  собственных вагон-цистерн компании.xlsx");
            }

            dataTable.Clear();
            Itog_Rep.Clear();
            Process.Start(AppDomain.CurrentDomain.BaseDirectory + @"Report\" + company_name + " Реестр  за арендованных и  собственных вагон-цистерн компании.xlsx");
        }
        public void General_Reesters(string v1, string v2)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + @"ReportTemplates\Реестр  за арендованных и  собственных вагон-цистерн компании.xlsx";

            DataTable dt, dataTable, Itog_Rep;
            string    Name;

            using (SLDocument sl = new SLDocument(path))
            {
                sl.SelectWorksheet("ТОО Казыкурт");
                sl.RenameWorksheet("ТОО Казыкурт", "Реестр");
                sl.AddWorksheet("Temp");

                string RefreshAllCount = "exec dbo.GetReportAllRenderedService_v1 '" + v1 + "','" + v2 + "'," + "@Type = " + 2;
                dt = DbConnection.DBConnect(RefreshAllCount);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (j == 1)
                        {
                            Name = dt.Rows[i][j].ToString();
                            sl.CopyWorksheet("Реестр", Name);
                        }
                    }
                }

                sl.SelectWorksheet("Реестр");
                sl.DeleteWorksheet("Temp");

                int k = 0;

                foreach (var name in sl.GetWorksheetNames())
                {
                    if (name == "Реестр")
                    {
                        string RefreshAll = "exec dbo.GetReportAllRenderedService_v1 '" + v1 + "','" + v2 + "'," + "@Type = " + 1;
                        dataTable = DbConnection.DBConnect(RefreshAll);

                        string GetCountServiceCost = "exec dbo.Itog_All_Report '" + v1 + "','" + v2 + "'";
                        Itog_Rep = DbConnection.DBConnect(GetCountServiceCost);

                        sl.SelectWorksheet(name);

                        sl.SetCellValue("C6", "в ТОО Казыгурт-Юг c " + v1 + " по " + v2);

                        var val = dataTable.Rows.Count + 16 + Itog_Rep.Rows.Count * 2;
                        sl.CopyCell("B13", "K20", "B" + val, true);

                        sl.ImportDataTable(10, 1, dataTable, false);
                        sl.CopyCell("E10", "S" + Convert.ToString(dataTable.Rows.Count + 10), "G10", true);

                        for (int i = 0; i < dataTable.Rows.Count; i++)
                        {
                            for (int j = 1; j < dataTable.Columns.Count + 3; j++)
                            {
                                sl.SetCellStyle(i + 10, j, FormattingExcelCells(sl, true));
                            }
                        }

                        sl.SetCellValue(dataTable.Rows.Count + 12, 2, "=C6");
                        sl.SetCellStyle(dataTable.Rows.Count + 12, 2, FormattingExcelCells(sl, false));

                        sl.SetCellValue(dataTable.Rows.Count + 14, 2, "Всего обработано вагонов - цистерн всех собственников по видам операций:");
                        sl.SetCellStyle(dataTable.Rows.Count + 14, 2, FormattingExcelCells(sl, false));

                        //Итоговая сводка
                        int rowcount = 0;
                        //int total = 0;
                        double EndSum = 0;

                        for (int i = 0; i < Itog_Rep.Rows.Count; i++)
                        {
                            rowcount++;
                            double val1 = 1;
                            for (int j = 0; j < Itog_Rep.Columns.Count; j++)
                            {
                                if (j == 0)
                                {
                                    sl.SetCellValue(i + dataTable.Rows.Count + 15 + rowcount, j + 2, Itog_Rep.Rows[i][j].ToString());
                                    sl.SetCellStyle(i + dataTable.Rows.Count + 15 + rowcount, j + 2, FormattingExcelCells(sl, false));
                                }
                                else
                                {
                                    val1 = val1 * double.Parse(Itog_Rep.Rows[i][j].ToString());
                                    sl.SetCellValue(i + dataTable.Rows.Count + 15 + rowcount, j + 12, Convert.ToDecimal(Itog_Rep.Rows[i][j].ToString()));
                                    sl.SetCellStyle(i + dataTable.Rows.Count + 15 + rowcount, j + 12, FormattingExcelCells(sl, false));
                                }
                            }

                            EndSum += val1;
                        }

                        sl.SetCellValue(dataTable.Rows.Count + 14, 13, dataTable.Rows.Count);
                        sl.SetCellStyle(dataTable.Rows.Count + 14, 13, FormattingExcelCells(sl, false));


                        //Итоговая сумма
                        sl.SetCellValue(dataTable.Rows.Count + Itog_Rep.Rows.Count * 2 + 16, 14, EndSum);
                        sl.SetCellStyle(dataTable.Rows.Count + Itog_Rep.Rows.Count * 2 + 16, 14, FormattingExcelCells(sl, false));

                        GetCountServiceCost = string.Empty;
                        dataTable.Clear();
                        Itog_Rep.Clear();
                    }
                    else
                    {
                        int    cs      = Convert.ToInt32(dt.Rows[k][0].ToString());
                        string Refresh = "dbo.GetReportRenderedServices_v1 '" + v1 + "','" + v2 + "','" + cs + "'";
                        dataTable = DbConnection.DBConnect(Refresh);

                        string GetCountServiceCost = "exec dbo.Itog_Report  '" + v1 + "','" + v2 + "','" + cs + "'";
                        Itog_Rep = DbConnection.DBConnect(GetCountServiceCost);

                        Name = dt.Rows[k][1].ToString();
                        sl.SelectWorksheet(Name);

                        sl.SetCellValue("C4", dt.Rows[k][1].ToString());

                        sl.SetCellValue("C6", "в ТОО Казыгурт-Юг c " + v1 + " по " + v2);

                        var val = dataTable.Rows.Count + 16 + Itog_Rep.Rows.Count * 2;
                        sl.CopyCell("B13", "K20", "B" + val, true);

                        sl.ImportDataTable(10, 1, dataTable, false);
                        sl.CopyCell("E10", "S" + Convert.ToString(dataTable.Rows.Count + 10), "G10", true);

                        for (int i = 0; i < dataTable.Rows.Count; i++)
                        {
                            for (int j = 1; j < dataTable.Columns.Count + 3; j++)
                            {
                                sl.SetCellStyle(i + 10, j, FormattingExcelCells(sl, true));
                            }
                        }

                        sl.SetCellValue(dataTable.Rows.Count + 12, 2, "=C6");
                        sl.SetCellStyle(dataTable.Rows.Count + 12, 2, FormattingExcelCells(sl, false));

                        sl.SetCellValue(dataTable.Rows.Count + 14, 2, "Всего обработано вагонов - цистерн всех собственников по видам операций:");
                        sl.SetCellStyle(dataTable.Rows.Count + 14, 2, FormattingExcelCells(sl, false));

                        //Итоговая сводка
                        int rowcount = 0;
                        //int total = 0;
                        double EndSum = 0;

                        for (int i = 0; i < Itog_Rep.Rows.Count; i++)
                        {
                            rowcount++;
                            double val1 = 1;
                            for (int j = 0; j < Itog_Rep.Columns.Count; j++)
                            {
                                if (j == 0)
                                {
                                    sl.SetCellValue(i + dataTable.Rows.Count + 15 + rowcount, j + 2, Itog_Rep.Rows[i][j].ToString());
                                    sl.SetCellStyle(i + dataTable.Rows.Count + 15 + rowcount, j + 2, FormattingExcelCells(sl, false));
                                }
                                else
                                {
                                    val1 = val1 * double.Parse(Itog_Rep.Rows[i][j].ToString());
                                    sl.SetCellValue(i + dataTable.Rows.Count + 15 + rowcount, j + 12, Convert.ToDecimal(Itog_Rep.Rows[i][j].ToString()));
                                    sl.SetCellStyle(i + dataTable.Rows.Count + 15 + rowcount, j + 12, FormattingExcelCells(sl, false));
                                }
                            }

                            EndSum += val1;
                        }

                        sl.SetCellValue(dataTable.Rows.Count + 14, 13, dataTable.Rows.Count);
                        sl.SetCellStyle(dataTable.Rows.Count + 14, 13, FormattingExcelCells(sl, false));


                        //Итоговая сумма
                        sl.SetCellValue(dataTable.Rows.Count + Itog_Rep.Rows.Count * 2 + 16, 14, EndSum);
                        sl.SetCellStyle(dataTable.Rows.Count + Itog_Rep.Rows.Count * 2 + 16, 14, FormattingExcelCells(sl, false));

                        GetCountServiceCost = string.Empty;
                        dataTable.Clear();
                        Itog_Rep.Clear();

                        k++;
                    }
                }

                sl.SaveAs(AppDomain.CurrentDomain.BaseDirectory + @"Report\Общий Реестр  за арендованных и  собственных вагон-цистерн компании.xlsx");
            }
            Process.Start(AppDomain.CurrentDomain.BaseDirectory + @"Report\Общий Реестр  за арендованных и  собственных вагон-цистерн компании.xlsx");
        }