Формули на SpreadsheetGear между WorkbookViews

Имам 2 изгледа на работни книги:

<sprgr:WorkbookView Name="wbw1"/>
<sprgr:WorkbookView Name="wbw2"/>

Как да вмъквам формули в работен лист в wbw2, които препращат към клетки в работен лист в wbw1?


person Nuts    schedule 30.10.2013    source източник


Отговори (1)


Трикът за създаване на препратки към клетки между WorkbookView обектите трябва да гарантират, че и двата WorkbookView споделят един и същ основен IWorkbookSet обект. IWorkbookSet е нещо подобно на работещ екземпляр на Excel, където можете да имате произволен брой отворени работни книги в този екземпляр и можете да създавате препратки към работни книги.

Така че, ако всички ваши обекти на WorkbookView споделят едно и също ActiveWorkbookSet, тогава създаването на препратки към кръстосани листове или работни книги трябва да бъде толкова просто, колкото въвеждането на знак „=" в клетка в един WorkbookView и след това щракване върху клетка в другият WorkbookView. Трябва да откриете, че подходящата препратка се създава автоматично. Пример:

// Create a single workbook set containing two workbooks
IWorkbookSet wbs = Factory.GetWorkbookSet();
IWorkbook workbook1 = wbs.Workbooks.Add();  // Name = Book1
IWorkbook workbook2 = wbs.Workbooks.Add();  // Name = Book2

// Associate each workbook to a WorkbookView.  Because workbook1
// and workbook2 share the same underlying IWorkbookSet, wbw1 and wbw2
// now also share the same ActiveWorkbookSet, allowing for cross-workbook
// cell references
wbw1.ActiveWorkbook = workbook1;
wbw2.ActiveWorkbook = workbook2;

// Have user press "=" in a cell on one WorkbookView and then
// select a cell in the other WorkbookView.  This should result
// in a cross-workbook reference being created.

// Programmatically, you could just set a cell formula in wbw1
// to reference a cell in the other workbook.
wbw1.ActiveCell.Formula = "=[Book2]Sheet1!$A$1";
person Tim Andersen    schedule 31.10.2013