public void ImportBigTableWNamesFromFile(string _file_path, ref MultiValueFactory _factory, int _nr_data_rows = 0)
        {
            if (string.IsNullOrEmpty(_file_path) || _factory == null)
            {
                return;
            }
            int nr_rows_to_read = (_nr_data_rows == 0) ? ExcelStandardImporter.MAX_NR_TABLE_ENTRIES : _nr_data_rows + ExcelStandardImporter.ROW_OFFSET;

            List <List <string> > raw_record = this.ImportFromFile(_file_path, ExcelStandardImporter.TABLE_NAME,
                                                                   nr_rows_to_read);

            List <string>         names, units;
            List <List <double> > values;
            List <string>         row_names;

            ExcelStandardImporter.ParseDataNamedRows(raw_record, ExcelStandardImporter.MAX_NR_TABLE_ENTRIES,
                                                     out names, out units, out values, out row_names);

            // get the table name
            string[] file_path_comps = _file_path.Split(new string[] { "\\", "/", "." }, StringSplitOptions.RemoveEmptyEntries);
            int      nr_comps        = file_path_comps.Length;
            string   table_name      = "table";

            if (nr_comps > 1)
            {
                table_name = file_path_comps[nr_comps - 2];
            }
            else if (nr_comps > 0)
            {
                table_name = file_path_comps[0];
            }

            _factory.CreateBigTable(table_name, names, units, values, row_names);
        }