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