Exemplo n.º 1
0
 public ScriptHost(BaseScriptEngine engine)
 {
     Engine      = engine;
     Book        = new Book.SCBook(this);
     Spreadsheet = new Spreadsheet.SCSpreadsheet(this);
     Grid        = new Grid.SCGrid(this);
     Heap        = new Heap.SCHeap(this);
 }
Exemplo n.º 2
0
        protected virtual void DoMerge(SCBook anotherBook, MergeOptions options)
        {
            var book = options?.Book?.Document ?? Document;

            using (new UsingProcessor(() => book.BeginUpdate(), () => book.EndUpdate()))
            {
                DocumentPosition rangeStart = null, rangeEnd = null;

                anotherBook.Document.UpdateAllFields();

                DocumentRange range;
                using (var stream = new MemoryStream())
                {
                    anotherBook.Document.SaveDocument(stream, DocumentFormat.OpenXml);
                    stream.Seek(0, SeekOrigin.Begin);
                    range = book.AppendDocumentContent(stream, DocumentFormat.OpenXml);
                }

                if (rangeStart == null)
                {
                    rangeStart = range.Start;
                }

                rangeEnd = range.End;

                if (rangeStart != null && rangeEnd != null)
                {
                    var rangeComments = book.CreateRange(rangeStart, rangeEnd.ToInt() - rangeStart.ToInt());
                    AddComments(book, rangeComments, options);
                }

                book.CaretPosition = rangeEnd;
                Script.Book.SCBook.ResetBookFormatting(book, rangeEnd);
                ScrollToCaret();
            }
        }
Exemplo n.º 3
0
 public SCBook Merge(SCBook anotherBook, MergeOptions options = null)
 {
     ExecuteSynchronized(options, () => DoMerge(anotherBook, options));
     return(this);
 }