public void ReadFromXlsx(string path)
        {
            Excel.Application xlApp = new Excel.Application();

            var xlWorkBook = xlApp.Workbooks.Open(path, Editable: true);

            var sheet = (Excel.Worksheet)xlWorkBook.Sheets.Item[1];


            var range    = sheet.UsedRange;
            var rowCount = range.Rows.Count;
            var colCount = range.Columns.Count;

            int dataCount = rowCount - 1;


            if (rowCount < 1)
            {
                ShowTips(USAGE);
                return;
            }

            Data            = new DataMatrix(colCount);
            AttributesNames = new string[colCount];

            for (int i = 1; i <= colCount; i++)
            {
                AttributesNames[i - 1] = (range.Cells[1, i] as Excel.Range).Value2;
            }

            for (int i = 2; i <= rowCount; i++)
            {
                object[] data = new object[colCount];
                for (int j = 1; j <= colCount; j++)
                {
                    data[j - 1] = (range.Cells[i, j] as Excel.Range).Value2;;
                }
                Data.AddData(data);
            }

            xlWorkBook.Close();
            xlApp.Quit();
        }