Ejemplo n.º 1
0
        StringGridDictionary ConvertToLocalized(StringGridDictionary gridTbl)
        {
            List <string> languageNameList = LanguageNameList();

            StringGridDictionary localizedGirdTbl = new StringGridDictionary();

            foreach (var keyValue in gridTbl.List)
            {
                int        index;
                StringGrid grid = keyValue.Grid;
                if (grid.TryGetColumnIndex(TextKey, out index))
                {
                    StringGrid localizedGird = new StringGrid(grid.Name, grid.SheetName, CsvType.Tsv);
                    localizedGird.AddRow(languageNameList);
                    for (int i = 0; i < grid.Rows.Count; ++i)
                    {
                        if (i == 0)
                        {
                            continue;
                        }
                        string text = grid.Rows[i].ParseCellOptional <string>(TextKey, "");
                        localizedGird.AddRow(new List <string>(new string[] { text }));
                    }
                    localizedGirdTbl.Add(new StringGridDictionaryKeyValue(grid.SheetName, localizedGird));
                }
            }
            return(localizedGirdTbl);
        }
Ejemplo n.º 2
0
        //シートをCSVにコンバート
        bool TryConvertSheet(StringGridDictionaryKeyValue sheet, out CsvInfo csvInfo)
        {
            csvInfo = null;
            string outPutPath;

            if (AdvSettingDataManager.IsBootSheet(sheet.Name))
            {
                ///起動用データは個別にコンバート
                bootSettingGrid = sheet.Grid;
                return(false);
            }
            else if (AdvSettingDataManager.IsScenarioSettingSheet(sheet.Name))
            {
                ///シナリオ設定データは個別にコンバート
                scenarioSettingGrid = sheet.Grid;
                return(false);
            }
            else if (AdvSettingDataManager.IsSettingsSheet(sheet.Name))
            {
                outPutPath = "Settings";
            }
            else
            {
                scenarioSheetDictionary.Add(sheet);
                outPutPath = "Scenario";
            }
            csvInfo = new CsvInfo(sheet.Grid, outPutPath + "/" + sheet.Key);
            return(true);
        }
        //シートをCSVにコンバート
        void ConvertSheet(StringGridDictionaryKeyValue sheet, string folderPath)
        {
            string outPutPath = folderPath + "/";

            if (AdvSettingDataManager.IsBootSheet(sheet.Name))
            {
                ///起動用データは個別にコンバート
                bootSettingGrid = sheet.Grid;
                return;
            }
            else if (AdvSettingDataManager.IsScenarioSettingSheet(sheet.Name))
            {
                ///シナリオ設定データは個別にコンバート
                scenarioSettingGrid = sheet.Grid;
                return;
            }
            else if (AdvSettingDataManager.IsSettingsSheet(sheet.Name))
            {
                outPutPath += "Settings";
            }
            else
            {
                scenarioSheetDictionary.Add(sheet);
                outPutPath += "Scenario";
            }
            outPutPath += "/" + sheet.Key + extConvert;
            WriteFile(sheet.Grid, outPutPath);
        }
Ejemplo n.º 4
0
 //ブックの読み込み
 static void ReadBook(IWorkbook book, string path, StringGridDictionary gridDictionary)
 {
     for (int i = 0; i < book.NumberOfSheets; ++i)
     {
         ISheet     sheet = book.GetSheetAt(i);
         StringGrid grid  = ReadSheet(sheet, path);
         gridDictionary.Add(new StringGridDictionaryKeyValue(sheet.SheetName, grid));
     }
 }
Ejemplo n.º 5
0
 //ブックの読み込み
 static void ReadBook(IWorkbook book, string path, char ignoreSheetMark, bool parseFormula, bool parseNumreic, StringGridDictionary gridDictionary)
 {
     for (int i = 0; i < book.NumberOfSheets; ++i)
     {
         UnityEngine.Profiling.Profiler.BeginSample("ReadBook");
         ISheet     sheet = book.GetSheetAt(i);
         StringGrid grid  = ReadSheet(sheet, path, ignoreSheetMark, parseFormula, parseNumreic);
         gridDictionary.Add(new StringGridDictionaryKeyValue(sheet.SheetName, grid));
         UnityEngine.Profiling.Profiler.EndSample();
     }
 }
Ejemplo n.º 6
0
        //対象のエクセルファイルを全て読み込み
        StringGridDictionary ReadAllExcelFiles(List <string> excelPathList)
        {
            StringGridDictionary readSheets = new StringGridDictionary();

            foreach (string assetPath in excelPathList)
            {
                if (!string.IsNullOrEmpty(assetPath))
                {
                    StringGridDictionary dictionary = ExcelParser.Read(assetPath);
                    foreach (var sheet in dictionary.List)
                    {
                        readSheets.Add(sheet);
                    }
                }
            }
            return(readSheets);
        }
        /// <summary>
        /// コンバートする
        /// </summary>
        /// <param name="folderPath">出力先パス</param>
        /// <param name="assetPathList">読み込むエクセルファイルのリスト</param>
        /// <returns>コンバートしたらtrue。失敗したらfalse</returns>
        public bool Convert(string folderPath, List <string> assetPathList, int version)
        {
            scenarioSheetDictionary.Clear();
            if (!string.IsNullOrEmpty(folderPath) && assetPathList.Count > 0)
            {
                //対象のエクセルファイルを全て読み込み
                StringGridDictionary readSheet = new StringGridDictionary();
                foreach (string assetPath in assetPathList)
                {
                    if (!string.IsNullOrEmpty(assetPath))
                    {
                        StringGridDictionary dictionary = ExcelParser.Read(assetPath);
                        foreach (var sheet in dictionary.List)
                        {
                            readSheet.Add(sheet);
                        }
                    }
                }

                if (readSheet.List.Count <= 0)
                {
                    return(false);
                }

                //各シートをコンバート
                foreach (var sheet in readSheet.List)
                {
                    ConvertSheet(sheet, folderPath);
                }
                //シナリオ設定シートは個別にコンバート
                WriteScenarioSetting(folderPath, version);

                ///起動用CSVをコンバート
                WriteBootSetting(folderPath, version);

                return(true);
            }
            return(false);
        }
Ejemplo n.º 8
0
 /// <summary>
 /// エクセルからデータ解析
 /// </summary>
 /// <param name="sheetName">シート名</param>
 /// <param name="grid">エクセルの1シートから作成したStringGrid</param>
 public void ParseFromExcel(string sheetName, StringGrid grid)
 {
     dictionary.Add(sheetName, grid);
 }