У меня есть 2 WorkbookViews:
<sprgr:WorkbookView Name="wbw1"/>
<sprgr:WorkbookView Name="wbw2"/>
Как вставить формулы в рабочий лист в wbw2, которые ссылаются на ячейки в рабочем листе в wbw1?
У меня есть 2 WorkbookViews:
<sprgr:WorkbookView Name="wbw1"/>
<sprgr:WorkbookView Name="wbw2"/>
Как вставить формулы в рабочий лист в wbw2, которые ссылаются на ячейки в рабочем листе в wbw1?
Хитрость создания ссылок на ячейки между 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";