예제 #1
0
        public IEnumerable <IXlsString> ReadStringsFromContinue(XlsBiffContinue sstContinue)
        {
            CurrentRecord       = sstContinue;
            CurrentRecordOffset = 4; // +4 skips BIFF header

            if (sstContinue.Size - CurrentRecordOffset == 0)
            {
                yield break;
            }

            if (CurrentState == SstState.StringData)
            {
                byte b = ReadByte();
                CurrentIsMultiByte = b != 0;
            }

            while (true)
            {
                if (!TryReadString(out var result))
                {
                    yield break;
                }

                yield return(result);
            }
        }
예제 #2
0
        /// <summary>
        /// Parses strings out of a Continue record
        /// </summary>
        public void ReadContinueStrings(XlsBiffContinue sstContinue)
        {
            if (_strings.Count == UniqueCount)
            {
                return;
            }

            foreach (var str in _reader.ReadStringsFromContinue(sstContinue))
            {
                _strings.Add(str);

                if (_strings.Count == UniqueCount)
                {
                    break;
                }
            }
        }
예제 #3
0
		/// <summary>
		/// Appends Continue record to SST
		/// </summary>
		/// <param name="fragment">Continue record</param>
		public void Append(XlsBiffContinue fragment)
		{
			continues.Add((uint)fragment.Offset);
			m_size += (uint)fragment.Size;
		}
예제 #4
0
 /// <summary>
 /// Appends Continue record to SST
 /// </summary>
 /// <param name="fragment">Continue record</param>
 public void Append(XlsBiffContinue fragment)
 {
     continues.Add((uint)fragment.Offset);
     m_size += (uint)fragment.Size;
 }