Example #1
0
        const string Language  = "Language";    //该字段是否有多国语言



        //解析一个网络协议
        // public static ScriptTable Deserialize(Script script, byte[] data, string layoutTableName) {
        //     return Read(script, new ScorpioReader(data), null, "", layoutTableName, true);
        // }

        /// <summary>
        /// 脚本 读取excel文件数据内容
        /// </summary>
        /// <param name="script">脚本引擎</param>
        /// <param name="fileName">文件名字</param>
        /// <param name="reader">文件读取</param>
        /// <param name="dataArray">数据集合</param>
        /// <param name="layoutTableName">布局</param>
        /// <param name="keyName">主key名字</param>
        /// <param name="MD5">文件结构MD5</param>
        /// <returns></returns>
        public static ScriptMap ReadDatas(string fileName, IScorpioReader reader, ScriptMap dataArray, string layoutTableName, string keyName, string MD5)
        {
            using (reader) {
                var script = dataArray.getScript();
                var iRow   = TableUtil.ReadHead(reader, fileName, MD5);                     //数据行数
                var layout = script.Global.GetValue(layoutTableName).Get <ScriptArray>();   //数据结构
                for (var i = 0; i < iRow; ++i)
                {
                    var data     = Read(script, reader, layout); //读取一行数据
                    var keyValue = data.GetValue(keyName);       //获取key值
                    data.SetValue("ID", keyValue);
                    var key = keyValue.Value;
                    if (dataArray.ContainsKey(key))
                    {
                        var value = dataArray.GetValue(key).Get <ScriptMap>();
                        foreach (var pair in data)
                        {
                            value.SetValue(pair.Key, pair.Value);
                        }
                    }
                    else
                    {
                        dataArray.SetValue(key, new ScriptValue(data));
                    }
                }
                return(dataArray);
            }
        }