Ejemplo n.º 1
0
        public IDictionary ReadDictionary(ISheet sheet, Schema schema, string keyField, int dataStart, int colStart, int colEnd, List <string> header, bool removeKeyInElement = false, int dataEnd = -1)
        {
            if (header == null || header.Count == 0)
            {
                header = ReadHelper.GetHeader(sheet, 0, colStart, colEnd);
            }

            List <Field> headerFields = ReadHelper.PrepareHeaderFields(header, schema);

            //如果没指定key,则默认使用第一个
            if (string.IsNullOrEmpty(keyField))
            {
                keyField = header[0];
            }

            Dictionary <object, object> dict = new Dictionary <object, object>();
            int l = dataEnd <= 0 ? sheet.LastRowNum : (dataEnd < sheet.LastRowNum ? dataEnd : sheet.LastRowNum);

            for (int i = sheet.FirstRowNum + dataStart; i <= l; ++i)
            {
                Dictionary <string, object> record = ReadRowData(sheet.GetRow(i), headerFields, colStart, colEnd);
                object key = record[keyField];
                dict[key] = record;
                if (removeKeyInElement)
                {
                    record.Remove(keyField);
                }
            }
            return(dict);
        }
Ejemplo n.º 2
0
        public void WriteList(ISheet sheet, Schema schema, IList list, int dataStart, int colStart, List <string> header)
        {
            List <Field> headerFields = header == null ? schema.fields:ReadHelper.PrepareHeaderFields(header, schema);

            for (int i = 0, l = list.Count; i < l; ++i)
            {
                IRow row = sheet.GetRow(i + dataStart);
                if (row == null)
                {
                    row = sheet.CreateRow(i + dataStart);
                }
                WriteRowData(row, list[i], headerFields, colStart);
            }
        }
Ejemplo n.º 3
0
        public void WriteDictionary(ISheet sheet, Schema schema, IDictionary data, int dataStart, int colStart, List <string> header)
        {
            List <Field> headerFields = header == null ? schema.fields : ReadHelper.PrepareHeaderFields(header, schema);
            int          i            = dataStart;

            foreach (var iter in data.Values)
            {
                IRow row = sheet.GetRow(i);
                if (row == null)
                {
                    row = sheet.CreateRow(i);
                }
                WriteRowData(row, iter, headerFields, colStart);
                ++i;
            }
        }
Ejemplo n.º 4
0
        public List <object> ReadList(ISheet sheet, Schema schema, int dataStart, int dataEnd, int colStart, int colEnd, List <string> header)
        {
            if (header == null || header.Count == 0)
            {
                header = ReadHelper.GetHeader(sheet, 0, colStart, colEnd);
            }

            List <Field> headerFields = ReadHelper.PrepareHeaderFields(header, schema);

            List <object> list = new List <object>();
            int           l    = dataEnd <= 0 ? sheet.LastRowNum : (dataEnd < sheet.LastRowNum ? dataEnd : sheet.LastRowNum);

            for (int i = sheet.FirstRowNum + dataStart; i <= l; ++i)
            {
                Dictionary <string, object> record = ReadRowData(sheet.GetRow(i), headerFields, colStart, colEnd);
                list.Add(record);
            }
            return(list);
        }