public void init(Excel.Cells v_data, int v_row, SheetHeader v_header) { sheetName = v_header.getData(v_data, v_row, "sheet名") as string; //optFileName = v_header.getData(v_data, v_row, "导出文件") as string; dataOffX = Convert.ToInt32(v_header.getData(v_data, v_row, "数据偏移X")); dataOffY = Convert.ToInt32(v_header.getData(v_data, v_row, "数据偏移Y")); optCliFileName = v_header.getData(v_data, v_row, "导出客户端文件") as string; optCliLanguage = getLuaguage(optCliFileName); optSrvFileName = v_header.getData(v_data, v_row, "导出服务端文件") as string; optSrvLanguage = getLuaguage(optSrvFileName); pmKey = _getPmKey(v_header.getData(v_data, v_row, "主键") as string); string shieldColNames = v_header.getData(v_data, v_row, "屏蔽字段") as string; if (string.IsNullOrEmpty(shieldColNames)) { shildKeys = new string[0]; } else { shildKeys = (v_header.getData(v_data, v_row, "屏蔽字段") as string).Split(',', ','); } isOpt = readBool(v_header, v_data, v_row, "是否导出"); isDataPersistence = readBool(v_header, v_data, v_row, "常驻内存"); isSingleKey = readBool(v_header, v_data, v_row, "SingleKey"); note = v_header.getData(v_data, v_row, "表注释") as string; }
public void readData(Excel.Worksheet v_sheet) { Excel.Cells data = v_sheet.Cells; SheetHeader header = new SheetHeader(); header.readHeader(v_sheet, 1); for (int i = 2; i < 100000; i++) { object idIdx = header.getData(data, i, "等级"); if (idIdx == null || string.IsNullOrWhiteSpace(idIdx.ToString())) { break; } int groupId = Convert.ToInt32(header.getData(data, i, "组ID")); List <int> arrIndex = null; if (!m_playerDataIndex.ContainsKey(groupId)) { arrIndex = new List <int>(); m_playerDataIndex.Add(groupId, arrIndex); } else { arrIndex = m_playerDataIndex[groupId]; } arrIndex.Add(m_playerDatas.Count); if (arrIndex == null) { arrIndex = new List <int>(); m_playerDataIndex.Add(groupId, arrIndex); } arrIndex.Add(m_playerDatas.Count); playerData pd = new playerData(); string[] strIpt = new string[titles.Length]; for (int j = 0; j < titles.Length; j++) { object tmp = header.getData(data, i, titles[j]); if (tmp == null) { Debug.Info("读取第{0}行第{1}列时发生错误", i, titles[j]); } strIpt[j] = Convert.ToString(tmp); } pd.init(strIpt); m_playerDatas.Add(pd); } }
private bool readBool(SheetHeader v_header, Excel.Cells v_cell, int v_row, string v_colName) { object oVal = v_header.getData(v_cell, v_row, v_colName); if (oVal == null) { return(false); } if (oVal is bool) { return((bool)oVal); } else { return(oVal.ToString().Equals("TRUE")); } }
public void calMonsterData(Excel.Worksheet v_monsterSheet) { Excel.Cells data = v_monsterSheet.Cells; SheetHeader header = new SheetHeader(); header.readHeader(v_monsterSheet, 1); m_monsterAttr = new List <MonsterAttr>(); //读取设置数据 for (int i = 2; true; i++) { object oid = header.getData(data, i, "ID"); if (oid == null || string.IsNullOrWhiteSpace(oid.ToString())) { break; } MonsterAttr tmp = new MonsterAttr(); tmp.id = Convert.ToInt32(oid); tmp.note = header.getData(data, i, "备注").ToString(); tmp.groupID = Convert.ToInt32(header.getData(data, i, "组ID")); tmp.level = Convert.ToInt32(header.getData(data, i, "等级")); tmp.iniAngry = Convert.ToInt32(header.getData(data, i, "初始怒气")); tmp.angryRecover = Convert.ToInt32(header.getData(data, i, "怒气回复")); tmp.killMonsterRound = Convert.ToSingle(header.getData(data, i, "玩家杀怪回合数")); tmp.hpCost = Convert.ToSingle(header.getData(data, i, "消耗血量")); tmp.phisicalDefPercent = Convert.ToSingle(header.getData(data, i, "物防百分比")); tmp.magicalDefPercent = Convert.ToSingle(header.getData(data, i, "法防百分比")); tmp.playerCureNum = Convert.ToSingle(header.getData(data, i, "玩家治疗数")); tmp.monsterCureNum = Convert.ToSingle(header.getData(data, i, "怪物治疗数")); m_monsterAttr.Add(tmp); } //进行计算,并填表 for (int i = 0; i < m_monsterAttr.Count; i++) { MonsterAttr cur = m_monsterAttr[i]; int playerIdx = getPlayerAttrIdx(cur.groupID, cur.level); BaseAttrData playerAttr = m_playerAttrdatas[playerIdx]; cur.playerAttr = playerAttr; cur.calMonsterAttr(); header.setData(data, i + 2, "玩家血量", playerAttr.Hp); header.setData(data, i + 2, "玩家攻击", playerAttr.Atk); header.setData(data, i + 2, "玩家物防", playerAttr.PhisicalDef); header.setData(data, i + 2, "玩家法防", playerAttr.MagicalDef); header.setData(data, i + 2, "怪物血量", cur.monsterAttr.Hp); header.setData(data, i + 2, "怪物攻击", cur.monsterAttr.Atk); header.setData(data, i + 2, "怪物物防", cur.monsterAttr.PhisicalDef); header.setData(data, i + 2, "怪物法防", cur.monsterAttr.MagicalDef); } }
public void init(Excel.Cells v_data, int v_row, SheetHeader v_header) { sheetName = v_header.getData(v_data, v_row, "sheet名") as string; //optFileName = v_header.getData(v_data, v_row, "导出文件") as string; dataOffX = Convert.ToInt32(v_header.getData(v_data, v_row, "数据偏移X")); dataOffY = Convert.ToInt32(v_header.getData(v_data, v_row, "数据偏移Y")); optCliFileName = v_header.getData(v_data, v_row, "导出客户端文件") as string; optCliLanguage = getLuaguage(optCliFileName); optSrvFileName = v_header.getData(v_data, v_row, "导出服务端文件") as string; optSrvLanguage = getLuaguage(optSrvFileName); pmKey = _getPmKey(v_header.getData(v_data, v_row, "主键") as string); string shieldColNames = v_header.getData(v_data, v_row, "屏蔽字段") as string; if (string.IsNullOrEmpty(shieldColNames)) { shildKeys = new string[0]; } else { shildKeys = (v_header.getData(v_data, v_row, "屏蔽字段") as string).Split(',', ','); } Object optCols = v_header.getData(v_data, v_row, "是否导出"); if (optCols == null) { optCols = false; } if (optCols is bool) { isOpt = (bool)optCols; } else { isOpt = optCols.ToString().Equals("TRUE"); } note = v_header.getData(v_data, v_row, "表注释") as string; Object dataPersistence = v_header.getData(v_data, v_row, "是否导出"); if (dataPersistence == null) { dataPersistence = false; } if (dataPersistence is bool) { isDataPersistence = (bool)dataPersistence; } else { isDataPersistence = optCols.ToString().Equals("TRUE"); } }