Mám kód, ktorý pracoval vo verzii VSTO programu Excel Addin
Microsoft.Office.Tools.Excel.ListObject lo = Globals.ThisAddIn.VSTOWorksheet.Controls.AddListObject(r, "lo1");
lo.AutoSetDataBoundColumnHeaders = true;
lo.DataSource = dt; //some DataTable
Používal som tento API, pretože jeho deklaratívna syntax databinding. Aplikácia API programu Excel.Interop nemala metódy ako AutoSetDataBoundColumnHeaders.
Ak môžem dostať Microsoft.Office.Tools.Excel.ListObject importované, ako vyriešim kolekciu Kontroly, na ktorú volám AddListObject bez VSTO vecí v programe Excel DNA?
Akékoľvek riešenie by bolo pekné, aj keby to znamenalo vyradenie môjho kódu, ale vo všeobecnosti by som chcel pochopiť, kedy použiť API vo vnútri DNA programu Excel, aby som dosiahol túto databázu.
odpovede:
3 pre odpoveď č. 1VSTO pridá niektoré rozšírenia na vrchol programu Excelobjektový model. Nemám žiadne skúsenosti s VSTO a pre veci ako ListObjects nemôžem povedať, kde sa skončí objektový model programu Excel a začnú sa rozšírené objekty wrapperu VSTO.
Hranica je v podstate toto: Microsoft.Office.Interop.Excel možno použiť z Excel-DNA (takže toto je rozhranie ListObject, ktoré môžete použiť: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.listobject_members.aspx). Microsoft.Office.Tools.Excel je súčasťou VSTO.
Taktiež nemám ani tušenie, či sa môžu knižnice VSTO použiť spolu s programom Excel-DNA. Problémom by bolo, že by sa knižnice VSTO inicializovali a pripojili - môže to byť zložité.
Možno to stojí za to, aby ste sa pokúsili opätovne implementovať tieto rozšírenia objektových modelov sami na vrchole objektu modelu Excel. Nemyslím si, že VSTO robí čokoľvek, čo by si nemohla urobiť.