Exemple #1
0
        private void InitFromJson(string fileName)
        {
            string jsonStr;

            using (StreamReader r = new StreamReader(fileName))
            {
                jsonStr = r.ReadToEnd();
            }
            TJsonTablePortion portion = JsonConvert.DeserializeObject <TJsonTablePortion>(jsonStr);

            Title        = portion.Title;
            DocumentFile = portion.InputFileName;
            CopyPortion(portion.Header, false);
            CopyPortion(portion.Section, true);
            CopyPortion(portion.Data, true);
        }
Exemple #2
0
        public TJsonTablePortion TablePortionToJson(ColumnOrdering columnOrdering, int body_start, int body_end)
        {
            var table = new TJsonTablePortion();

            table.DataStart = body_start;
            int headerEnd = columnOrdering.GetPossibleHeaderEnd();

            for (int i = columnOrdering.GetPossibleHeaderBegin(); i < columnOrdering.GetPossibleHeaderEnd(); i++)
            {
                var row = GetJsonByRow(GetCells(i));
                table.Header.Add(row);
            }

            // find section before data
            for (int i = body_start; i >= headerEnd; i--)
            {
                string dummy;
                // cannot use prevRowIsSection
                var row = GetCells(i);
                if (IsSectionRow(row, columnOrdering.GetMaxColumnEndIndex(), false, out dummy))
                {
                    table.Section.Add(GetJsonByRow(row));
                    break;
                }
            }

            int maxRowsCount = body_end - body_start;

            table.DataEnd = body_start;
            int addedRows = 0;

            while (table.DataEnd < GetRowsCount() && addedRows < maxRowsCount)
            {
                if (!IsEmptyRow(table.DataEnd))
                {
                    table.Data.Add(GetJsonByRow(GetCells(table.DataEnd)));
                    addedRows++;
                }
                table.DataEnd++;
            }
            return(table);
        }