Могу ли я использовать Microsoft.Office.Tools.Excel в проекте Excel ДНК или есть другой способ выполнить привязку таблицы к таблице? - PullRequest
2 голосов
/ 07 июля 2011

У меня есть код, который работал в VSTO-версии надстройки Excel.

Microsoft.Office.Tools.Excel.ListObject lo = Globals.ThisAddIn.VSTOWorksheet.Controls.AddListObject(r, "lo1");
lo.AutoSetDataBoundColumnHeaders = true;
lo.DataSource = dt; //some DataTable

Я использовал этот API из-за его декларативного синтаксиса привязки данных.И у API Excel.Interop не было таких методов, как AutoSetDataBoundColumnHeaders ..

Если я могу импортировать Microsoft.Office.Tools.Excel.ListObject, как я буду разрешать коллекцию Controls, для которой я вызываю AddListObject, безчто такое VSTO внутри Excel DNA?

Любое решение было бы неплохо, даже если бы оно включало в себя мой код, но в целом я хотел бы понять, когда использовать API внутри Excel DNA для достижения этой цели.материал для привязки данных.

1 Ответ

3 голосов
/ 08 июля 2011

VSTO добавляет некоторые расширения поверх объектной модели Excel. У меня нет опыта работы с VSTO, и для таких вещей, как ListObjects, я не могу сказать, где заканчивается объектная модель Excel и начинаются расширенные объекты-оболочки VSTO.

Граница в основном такова: Microsoft.Office.Interop.Excel можно использовать из Excel-DNA (так что это интерфейс ListObject, который вы можете использовать: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.listobject_members.aspx). Microsoft.Office.Tools.Excel является частью VSTO.

Кроме того, я действительно понятия не имею, могут ли библиотеки VSTO использоваться вместе с Excel-DNA. Проблема заключается в инициализации и подключении библиотек VSTO - это может быть сложно.

Возможно, стоит попытаться повторно реализовать эти расширения объектной модели самостоятельно поверх объектной модели Excel. Я не думаю, что ВСТО делает что-то, что ты не мог сделать сам.

...