コード例 #1
0
        public static CsvData GetValidCsvData(string csvText, GlobalCCSettings gSettings)
        {
            var csvAsList = CsvParser.ReadAsList(csvText);

            CsvData csvData = new CsvData();

            csvData.SetFromList(csvAsList);

            // END マーカーが有効な場合は END 以下を無視するようにする.
            if (gSettings.isEndMarkerEnabled)
            {
                int    endMarkerIndex = gSettings.columnIndexOfEndMarker;
                string marker         = gSettings.endMarker;

                if (endMarkerIndex < 0 || csvData.col <= endMarkerIndex)
                {
                    throw new Exception("無効な columnIndexOfEndMarker です: " + endMarkerIndex);
                }

                for (int i = 0; i < csvData.row; i++)
                {
                    if (csvData.Get(i, endMarkerIndex).Trim() == marker)
                    {
                        csvData = csvData.Slice(0, i);
                        break;
                    }
                }
            }

            // 無効な列を除外する
            csvData = csvData.SliceColumn(gSettings.columnIndexOfTableStart);

            return(csvData);
        }
コード例 #2
0
        public IEnumerator LoadCsvData(GSWorksheet sheet)
        {
            string title = sheet.title;
            string url   = sheet.link;

            UnityWebRequest req = UnityWebRequest.Get(url);

            var op = req.SendWebRequest();

            while (!op.isDone)
            {
                yield return(null);
            }

            if (req.isNetworkError || req.isHttpError)
            {
                Debug.Log(req.error);
                yield break;
            }
            else if (req.responseCode != 200)
            {
                yield break;
            }

            string resJson = req.downloadHandler.text;

            resJson = resJson.Replace("$", "_d_");
            GSResponse response = JsonUtility.FromJson <GSResponse>(resJson);

            if (response == null || response.feed == null)
            {
                yield break;
            }

            List <List <string> > cellList = new List <List <string> >();

            foreach (GSResponse.Entry entry in response.feed.entry)
            {
                var cell = entry.gs_d_cell;

                int    row        = cell.row;
                int    col        = cell.col;
                string inputValue = cell._d_t;

                while (cellList.Count < row)
                {
                    cellList.Add(new List <string>());
                }

                while (cellList[row - 1].Count < col)
                {
                    cellList[row - 1].Add(string.Empty);
                }

                cellList[row - 1][col - 1] = inputValue;
            }

            CsvData csv = new CsvData();

            csv.SetFromList(cellList);

            this.loadedCsvData = csv;
            this.isSuccess     = true;
        }