Формулы SpreadsheetGear между WorkbookViews

У меня есть 2 WorkbookViews:

<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