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); } }