/// <summary>
        /// Сформировать sql файл с запросами.
        /// </summary>
        public void LoadIntoFile(string path)
        {
            double res     = 0.0;
            int    koksCol = ColumnKOKS.Rows.Count;  // Число столбцов в таблице KOKS.

            string startReqLine  = GetColumnsName(); // Получаем начальную строку для вставки данных.
            string valuesReqLine = String.Empty;     // Строка для вставки с данными из Excel.
            string totalRequest  = "";               // Общая строка запроса.

            //List<string> sqlRequests = new List<string>();

            using (StreamWriter streamWriter = new StreamWriter(path, true, Encoding.UTF8))
            {
                for (int i = 0; i < RowsCount; i++) // Должно быть RowsCount.
                {
                    valuesReqLine = "";

                    for (int j = 1; j < koksCol; j++)
                    {
                        if (KoksInExcel.ContainsKey(ColumnKOKS.Rows[j][0].ToString()))
                        {
                            int index = KoksInExcel[ColumnKOKS.Rows[j][0].ToString()];
                            valuesReqLine += GetValueFromData(dataTable.Rows[i][index].ToString()) + ",";
                        }
                        else
                        {
                            valuesReqLine += "NULL,";
                        }
                    }

                    valuesReqLine  = valuesReqLine.TrimEnd(',');
                    valuesReqLine += ")";
                    totalRequest   = startReqLine + valuesReqLine;

                    try
                    {
                        //sqlRequests.Add(totalRequest);
                        streamWriter.WriteLine(totalRequest);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Ошибка при добавлении экземпляра:\n" + ex.Message, "Ошибка. Row " + i.ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
                        WriteMessage("Ошибка при добавлении экземпляра (строка №" + i.ToString() + "):\n" + ex.Message + "\n" + totalRequest);
                        break;
                    }
                    finally
                    {
                        res += ProgressStep;
                        if (SetProgress != null)
                        {
                            SetProgress.Invoke(res);
                        }
                    }
                }
            }

            if (SetProgress != null)
            {
                SetProgress.Invoke(0);
            }
            WriteMessage("Sql скрипт сформирован.");

            //using (SqlConnection connection = new SqlConnection(Connections.ConnectionStrings.SQLConnectionStirng))
            //{
            //    connection.Open();
            //    SqlCommand command = connection.CreateCommand();

            //    for (int i = 0; i < RowsCount; i++) // Должно быть RowsCount.
            //    {
            //        valuesReqLine = "";

            //        for (int j = 1; j < koksCol; j++)
            //        {
            //            if (KoksInExcel.ContainsKey(ColumnKOKS.Rows[j][0].ToString()))
            //            {
            //                int index = KoksInExcel[ColumnKOKS.Rows[j][0].ToString()];
            //                valuesReqLine += GetValueFromData(dataTable.Rows[i][index].ToString()) + ",";
            //            }
            //            else
            //            {
            //                valuesReqLine += "NULL,";
            //            }
            //        }

            //        valuesReqLine = valuesReqLine.TrimEnd(',');
            //        valuesReqLine += ")";

            //        totalRequest = startReqLine + valuesReqLine;

            //        try
            //        {
            //            //command.CommandText = totalRequest;
            //            sqlRequests.Add(totalRequest);
            //        }
            //        catch (Exception ex)
            //        {
            //            MessageBox.Show("Ошибка при добавлении экземпляра:\n" + ex.Message, "Ошибка. Row " + i.ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
            //            WriteMessage("Ошибка при добавлении экземпляра (строка №" + i.ToString() + "):\n" + ex.Message + "\n" + totalRequest);
            //            break;
            //        }
            //        finally
            //        {
            //            res += ProgressStep;
            //            if (SetProgress != null) { SetProgress.Invoke(res); }
            //        }
            //    }
            //}

            //if (SetProgress != null) { SetProgress.Invoke(0); }
            //WriteMessage("Данные из Excel-шаблона загружены в таблицу КОКС.");
        }
        /// <summary>
        /// Загрузить данные в табилцу Кокс.
        /// </summary>
        public void LoadIntoKoks()
        {
            double res     = 0.0;
            int    koksCol = ColumnKOKS.Rows.Count;  // Число столбцов в таблице KOKS.

            string startReqLine  = GetColumnsName(); // Получаем начальную строку для вставки данных.
            string valuesReqLine = String.Empty;     // Строка для вставки с данными из Excel.
            string totalRequest  = "";               // Общая строка запроса.



            using (SqlConnection connection = new SqlConnection(Connections.ConnectionStrings.SQLConnectionStirng))
            {
                connection.Open();
                //SqlTransaction transaction = connection.BeginTransaction();
                SqlCommand command = connection.CreateCommand();
                //command.Transaction = transaction;

                for (int i = 0; i < RowsCount; i++) // Должно быть RowsCount.
                {
                    valuesReqLine = "";


                    for (int j = 1; j < koksCol; j++)
                    {
                        if (KoksInExcel.ContainsKey(ColumnKOKS.Rows[j][0].ToString()))
                        {
                            int index = KoksInExcel[ColumnKOKS.Rows[j][0].ToString()];
                            valuesReqLine += GetValueFromData(dataTable.Rows[i][index].ToString()) + ",";
                        }
                        else
                        {
                            valuesReqLine += "NULL,";
                        }
                    }

                    valuesReqLine  = valuesReqLine.TrimEnd(',');
                    valuesReqLine += ")";

                    /*foreach (KeyValuePair<string,int> col in KoksInExcel)
                     * {
                     *  string val = dataTable.Rows[i][col.Value].ToString();
                     *  valuesReqLine += GetValueFromData(val) + ",";
                     * }
                     *
                     * valuesReqLine = valuesReqLine.TrimEnd(',') + ")";
                     *
                     * for (int j = 0; j < koksCol; j++)
                     * {
                     *
                     *
                     *  string val = dataTable.Rows[i][ColumnKOKS.Rows[j][0].ToString()].ToString();
                     *  if (j < koksCol - 1)
                     *  {
                     *      valuesReqLine += GetValueFromData(val) + ",";
                     *  }
                     *  else
                     *  {
                     *      valuesReqLine += GetValueFromData(val) + ")";
                     *  }
                     * }*/

                    totalRequest = startReqLine + valuesReqLine;

                    //if (i == 6858)
                    //{
                    //    MessageBox.Show(totalRequest);
                    //}

                    try
                    {
                        command.CommandText = totalRequest;
                        command.ExecuteNonQuery();

                        //transaction.Commit(); // Подтверждаем транзакцию.
                    }
                    catch (Exception ex)
                    {
                        //transaction.Rollback();
                        MessageBox.Show("Ошибка при добавлении экземпляра:\n" + ex.Message, "Ошибка. Row " + i.ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
                        WriteMessage("Ошибка при добавлении экземпляра (строка №" + i.ToString() + "):\n" + ex.Message + "\n" + totalRequest);
                        break;
                    }
                    finally
                    {
                        res += ProgressStep;
                        if (SetProgress != null)
                        {
                            SetProgress.Invoke(res);
                        }
                    }
                }
            }

            //MessageBox.Show("Загружено");
            if (SetProgress != null)
            {
                SetProgress.Invoke(0);
            }
            WriteMessage("Данные из Excel-шаблона загружены в таблицу КОКС.");
        }