コード例 #1
0
    private static List <MasterLoadSprite.Data> ReadExcel(Type _type)
    {
        string loadPath = SystemSetting.GetExcelSeetPath() + _type.Name + "Sheet.xls";
        List <MasterLoadSprite.Data> dataList = new List <MasterLoadSprite.Data> ();

        using (FileStream stream = File.Open(loadPath, FileMode.Open, FileAccess.Read)) {
            IWorkbook book  = new HSSFWorkbook(stream);
            ISheet    sheet = book.GetSheet("MainSeet");

            for (int i = 1; i < sheet.LastRowNum; i++)
            {
                IRow row     = sheet.GetRow(i);
                int  iColumn = 0;

                MasterLoadSprite.Data tmpData = new MasterLoadSprite.Data();

                //DataSwitch :
                tmpData.filename = row.GetCell(iColumn++).StringCellValue;
                tmpData.version  = (int)row.GetCell(iColumn++).NumericCellValue;
                tmpData.pre_load = (int)row.GetCell(iColumn++).NumericCellValue;
                tmpData.path     = row.GetCell(iColumn++).StringCellValue;
                tmpData.del_flg  = (int)row.GetCell(iColumn++).NumericCellValue;

                iColumn++;

                dataList.Add(tmpData);
            }
        }

        MasterLoadSpriteCSVLoader.UpdateCSVFile(dataList);

        return(dataList);
    }
コード例 #2
0
    public void Load(string _strAssetName)
    {
        MasterLoadSprite.Data data = new MasterLoadSprite.Data();

        foreach (MasterSpriteCSV temp in DataManager.master_sprite_list)
        {
            //foreach (MasterLoadSprite.Data temp in DataContainer.Instance.MasterLoadSpriteList) {
            //Debug.Log ("file:" + temp.filename + " path:" + temp.path + " ver:" + temp.version);
            if (temp.filename.Equals(_strAssetName) == true)
            {
                data.filename = temp.filename;
                data.path     = temp.path;
                data.pre_load = temp.pre_load;
                data.version  = temp.version;
                break;
            }
        }

        Load(data.filename, data.path, data.version);
        return;
    }
コード例 #3
0
    public static void MakeCell(ISheet _sheet1, Type _dataType, int _iRow, List <MasterLoadSprite.Data> listData)
    {
        //Type makeDataType = typeof(List<MasterLoadSprite.Data>);

        IRow  row;
        ICell cell;

        int cellIndex = 0;

        row = _sheet1.CreateRow(_iRow);

        memberList = memberNameList;

        string objName = "None :";

        typeList = new List <string> ();

        int countNum   = 0;
        int curDataRow = _iRow - 1;

        Type tmpType = typeof(MasterLoadSprite.Data);

        MasterLoadSprite.Data tmpData = listData[curDataRow];

        foreach (string item in memberList)
        {
            cell = row.CreateCell(cellIndex++);
            FieldInfo memberFieldInfo = fieldInfoList [countNum];

            if (memberFieldInfo.FieldType.ToString() == "System.Int32")
            {
                int setInt = (int)tmpType.InvokeMember(item, BindingFlags.GetField, null, tmpData, null);
                cell.SetCellValue(setInt);
            }
            else if (memberFieldInfo.FieldType.ToString() == "System.Single")
            {
                float setFloat = (float)tmpType.InvokeMember(item, BindingFlags.GetField, null, tmpData, null);
                cell.SetCellValue(setFloat);
            }
            else if (memberFieldInfo.FieldType.ToString() == "System.String")
            {
                objName = (string)tmpType.InvokeMember(item, BindingFlags.GetField, null, tmpData, null);
                cell.SetCellValue(objName);
            }
            else if (memberFieldInfo.FieldType.ToString() == "System.Boolean")
            {
                bool   setbool   = (bool)tmpType.InvokeMember(item, BindingFlags.GetField, null, tmpData, null);
                string setString = "";

                if (!setbool)
                {
                    setString = "false";
                }
                else
                {
                    setString = "true";
                }
                cell.SetCellValue(setString);
            }
            else
            {
                Debug.LogError("データ定義に異常があります!!!!!!!   :" + memberFieldInfo.FieldType.ToString());

                //異常なデータは出力してはいけないので強制停止
                break;
            }

            cell.CellStyle = blackBorder;

            countNum++;
        }
    }
コード例 #4
0
    public static List <MasterLoadSprite.Data> GetListDataFromCSV(Type _dataType)
    {
        string    filePath = SystemSetting.GetResourcesCSVFilePath() + StringExtensions.UpperCamelToSnake(_dataType.Name) + "";
        TextAsset csv      = (TextAsset)Resources.Load(filePath, typeof(TextAsset)) as TextAsset;

        FieldInfo[]   fieldInfoList           = CSMaker.GetFieldInfo(typeof(MakeDataNamespace.MasterLoadSprite));
        List <string> memberNameList          = CSMaker.GetMemberList(typeof(MakeDataNamespace.MasterLoadSprite));
        List <MasterLoadSprite.Data> listData = new List <MasterLoadSprite.Data>();

        StringReader reader = new StringReader(csv.text);

        Type curType = typeof(MasterLoadSprite.Data);


        int rowNum = -1;

        while (reader.Peek() > -1)
        {
            MasterLoadSprite.Data lineData = new MasterLoadSprite.Data();
            int columnCount = 0;

            string   line   = reader.ReadLine();
            string[] values = line.Split(',');

            rowNum++;
            //0行はタイトルなので飛ばす
            if (rowNum == 0)
            {
                continue;
            }

            foreach (string item in values)
            {
                string    columnType      = memberNameList[columnCount];
                FieldInfo memberFieldInfo = fieldInfoList[columnCount];

                if (memberFieldInfo.FieldType.ToString() == "System.Int32")
                {
                    string convertStr = ConvertString(item);
                    int    setNumber  = int.Parse(convertStr);
                    curType.InvokeMember(columnType, BindingFlags.SetField, null, lineData, new object[] { setNumber });
                }
                else if (memberFieldInfo.FieldType.ToString() == "System.Single")
                {
                    string convertStr = ConvertString(item);
                    float  setNumber  = float.Parse(convertStr);
                    curType.InvokeMember(columnType, BindingFlags.SetField, null, lineData, new object[] { setNumber });
                }
                else if (memberFieldInfo.FieldType.ToString() == "System.String")
                {
                    string convertStr = ConvertString(item);
                    string setString  = convertStr.Substring(1, convertStr.Length - 2);
                    // エスケープされたダブルクオーテーションがない場合はそのままの文字列を利用する
                    if (convertStr.Contains("\"") == false)
                    {
                        setString = convertStr;
                    }
                    setString = setString.Replace("\\n", "\n");
                    curType.InvokeMember(columnType, BindingFlags.SetField, null, lineData, new object[] { setString });
                }
                else if (memberFieldInfo.FieldType.ToString() == "System.Boolean")
                {
                    if (item == "1")
                    {
                        curType.InvokeMember(columnType, BindingFlags.SetField, null, lineData, new object[] { true });
                    }
                    else
                    {
                        curType.InvokeMember(columnType, BindingFlags.SetField, null, lineData, new object[] { false });
                    }
                }
                else
                {
                    Debug.LogError("データ定義に異常があります!!!!!!!" + memberFieldInfo.FieldType);
                    //異常なデータは出力してはいけないので強制停止
                    break;
                }

                columnCount++;
            }
            listData.Add(lineData);
        }
        return(listData);
    }