示例#1
0
 private void ShowCoeffs(EnergyMeter selectedMeter)
 {
     for (int i = 1; i <= 12; i++)
     {
         if (selectedMeter.Number == null)
         {
             Controls.Find("monthLimit" + i, true).First().Text = EnergyMeter.DEFAULT_COEFFICIENTS[i - 1].ToString("F3");
         }
         else
         {
             Controls.Find("monthLimit" + i, true).First().Text = selectedMeter.MonthsCoefficients[i - 1].ToString("F3");
         }
     }
 }
示例#2
0
        private MetersList GetDataFromExelFile(string fileName, bool appStart)
        {
            MetersList mList = new MetersList();

            // запуск процесса Excel
            Excel.Application xlApp = new Excel.Application();
            if (xlApp == null)
            {
                NotificationHelper.ShowError("Помилка при завантаженні екземпляру Microsoft Excel!");
                Environment.Exit(0);
            }

            // Загрузка книги
            Excel.Workbook wb = xlApp.Workbooks.Open(fileName);
            if (wb == null)
            {
                NotificationHelper.ShowError("Помилка при завантаженні книги Microsoft Excel!");
                xlApp.Quit();
                xlApp = null;
                Environment.Exit(0);
            }

            // Выбор листа с данными
            Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
            if (ws == null)
            {
                NotificationHelper.ShowError("Помилка при завантаженні листа із книги Microsoft Excel!");
                xlApp.Quit();
                xlApp = null;
                Environment.Exit(0);
            }

            // Считывание данных с листа
            try
            {
                for (int i = 0; ; i++)
                {
                    string name = ws.get_Range(NAME_COLUMN_LETTER + (NAME_COLUMN_INDEX + i)).Value;
                    if (string.IsNullOrWhiteSpace(name))
                    {
                        break;
                    }
                    if (appStart)
                    {
                        mList.Add(
                            new EnergyMeter
                        {
                            Name           = name,
                            IsHeating      = (name.EndsWith("(опал.)") || name.EndsWith("(оп.)") || name.EndsWith("(опалення)")),
                            Number         = (i + 1),
                            ConnectedPower = ws.get_Range(POWER_COLUMN_LETTER + (NAME_COLUMN_INDEX + i)).Value
                        });
                    }
                    else
                    {
                        double[] mounthLimits = new double[12];
                        for (int j = 0; j < MONTHS_LETTERS.Count(); j++)
                        {
                            mounthLimits[j] = ws.get_Range(MONTHS_LETTERS[j] + (NAME_COLUMN_INDEX + i)).Value;
                        }
                        EnergyMeter newMeter = new EnergyMeter(ws.get_Range(YEAR_LETTER + (NAME_COLUMN_INDEX + i)).Value,
                                                               mounthLimits);
                        newMeter.Name           = name;
                        newMeter.Number         = (i + 1);
                        newMeter.ConnectedPower = ws.get_Range(POWER_COLUMN_LETTER + (NAME_COLUMN_INDEX + i)).Value;
                        mList.Add(newMeter);
                    }
                }
            }
            catch (Exception ex)
            {
                NotificationHelper.ShowError("Помилка при завантаженні данних!");
                Environment.Exit(0);
            }
            finally
            {
                wb.Close(false);
                xlApp.Quit();
                xlApp = null;
                //System.GC.Collect();
            }

            return(mList);
        }