Ejemplo n.º 1
0
        private void Init(ISheetImporterData data)
        {
            data.GetSize(out int numColumns, out int numRows);

            RawSheetRow dataRow = null;

            for (int row = 1; row < numRows + 1; ++row)
            {
                var rowId = data.GetCell(0, row);

                if (!string.IsNullOrEmpty(rowId))
                {
                    dataRow = new RawSheetRow();
                    Rows.Add(dataRow);
                }

                var dict = new Dictionary <string, string>();

                for (int col = 0; col < numColumns; ++col)
                {
                    var columnName = data.GetCell(col, 0);
                    var valueStr   = data.GetCell(col, row);

                    if (!string.IsNullOrEmpty(valueStr))
                    {
                        dict.Add(columnName, valueStr);
                    }
                }

                dataRow.Add(dict);
            }
        }
Ejemplo n.º 2
0
        public static void GetSize(this ISheetImporterData data, out int numColumns, out int numRows)
        {
            int col = 0, row = 0;

            // First row is configuration variables
            // First column is data keys
            // Find number of configuration variables
            while (true)
            {
                var value = data.GetCell(col, 0);
                if (string.IsNullOrEmpty(value))
                {
                    break;
                }

                ++col;
            }

            numColumns = col;

            // Find number of data keys
            while (true)
            {
                bool isEmptyRow = Enumerable.Range(0, numColumns).All(i => {
                    var value = data.GetCell(i, row + 1);
                    return(string.IsNullOrEmpty(value));
                });

                if (isEmptyRow)
                {
                    break;
                }

                ++row;
            }

            numRows = row;
        }
Ejemplo n.º 3
0
        public RawSheet(ISheetImporterData data)
        {
            Rows = new List <RawSheetRow>();

            Init(data);
        }