コード例 #1
0
        public static PropertyMapping <float>[] Read(string excelfile, string sheet, int nlayer)
        {
            FileStream       stream      = File.Open(excelfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

            excelReader.IsFirstRowAsColumnNames = true;
            System.Data.DataSet result = excelReader.AsDataSet();
            var dt     = result.Tables[sheet];
            var dtEnum = dt.AsEnumerable();
            int num    = dt.Rows.Count;

            PropertyMapping <float>[] maps = new PropertyMapping <float> [nlayer];
            for (int l = 0; l < nlayer; l++)
            {
                var ids = from r in dtEnum select r.Field <double>("ID" + (l + 1)).ToString();

                string[] varnam = new string[5];
                var      values = new float[num, varnam.Length];
                for (int i = 1; i < 6; i++)
                {
                    varnam[i - 1] = dt.Columns[l * 6 + i].ColumnName;
                    var colvec = from r in dtEnum select float.Parse(r.Field <double>(varnam[i - 1]).ToString());

                    MatrixExtension <float> .AssignColumn(values, i - 1, colvec.ToArray());
                }
                PropertyMapping <float> map = new PropertyMapping <float>(ids.ToArray(), varnam, values);
                maps[l] = map;
            }

            return(maps);
        }
コード例 #2
0
        public PropertyMapping(string[] ids, string var, T[] values)
        {
            mVarNames  = new string[] { var };
            mVarValues = new T[ids.Length, 1];
            MatrixExtension <T> .AssignColumn(mVarValues, 0, values);

            mIDs = ids;
            Build();
        }