Exemplo n.º 1
0
    private static List <MasterLoadAudio.Data> ReadExcel(Type _type)
    {
        string loadPath = SystemSetting.GetExcelSeetPath() + _type.Name + "Sheet.xls";
        List <MasterLoadAudio.Data> dataList = new List <MasterLoadAudio.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;

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

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

                iColumn++;

                dataList.Add(tmpData);
            }
        }

        MasterLoadAudioCSVLoader.UpdateCSVFile(dataList);

        return(dataList);
    }
Exemplo n.º 2
0
    public static void MakeCell(ISheet _sheet1, Type _dataType, int _iRow, List <MasterLoadAudio.Data> listData)
    {
        //Type makeDataType = typeof(List<MasterLoadAudio.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(MasterLoadAudio.Data);

        MasterLoadAudio.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++;
        }
    }
Exemplo n.º 3
0
    public static List <MasterLoadAudio.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.MasterLoadAudio));
        List <string> memberNameList         = CSMaker.GetMemberList(typeof(MakeDataNamespace.MasterLoadAudio));
        List <MasterLoadAudio.Data> listData = new List <MasterLoadAudio.Data>();

        StringReader reader = new StringReader(csv.text);

        Type curType = typeof(MasterLoadAudio.Data);


        int rowNum = -1;

        while (reader.Peek() > -1)
        {
            MasterLoadAudio.Data lineData = new MasterLoadAudio.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);
    }