Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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"));
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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");
            }
        }