افزونههای وب
افزونههای وب
این راهنما نشان میدهد چگونه میتوان متادیتای پنل وظیفه افزونه Office را که در یک فایل .docx جاسازی شده است، با Aspose.Words FOSS برای .NET خواند و تغییر داد. Aspose.Words FOSS برای .NET میتواند پنلهای وظیفه افزونه وب (Office Add-in) که در یک فایل .docx جاسازی شدهاند — متادیتایی که یک سند را به یک افزونه Office مرتبط میکند و آن را به دادههای سند متصل میسازد — را از طریق Document.WebExtensionTaskPanes و مدل شیء TaskPane/WebExtension بخواند و تغییر دهد.
پنلهای وظیفه
Document.WebExtensionTaskPanes یک TaskPaneCollection از اشیاء TaskPane برمیگرداند. هر TaskPane مکان و نحوهٔ داک شدن پنل افزونه را توصیف میکند: DockState (یک TaskPaneDockState از Right یا Left)، Row، Width، IsLocked و IsVisible، بهعلاوه یک ویژگی WebExtension که به خود افزونه لینک میدهد.
هویت و مراجع افزونه وب
WebExtension افزونه را از طریق Id و IsFrozen شناسایی میکند و ویژگی Reference آن (یک WebExtensionReference) Id، Version، Store و StoreType (یک WebExtensionStoreType مانند SPCatalog، Exchange یا FileSystem) را که مکان توزیع افزونه را توصیف میکند، افشا میسازد. AlternateReferences حاوی یک WebExtensionReferenceCollection از مراجع پشتیبان است.
اتصالها و ویژگیهای سفارشی
WebExtension.Bindings یک WebExtensionBindingCollection از اشیای WebExtensionBinding است، که هر کدام به صورت new WebExtensionBinding(id, bindingType, appRef) ساخته شدهاند و بخشی از دادههای سند را از طریق یک WebExtensionBindingType (Matrix، Table یا Text) به افزونه مرتبط میکنند. WebExtension.Properties یک WebExtensionPropertyCollection از جفتهای ساده WebExtensionProperty نام/مقدار است، که به صورت new WebExtensionProperty(name, value) ساخته شده و برای تنظیمات سفارشی خاص افزونه استفاده میشود که نیاز به یک بایندینگ کامل ندارند.
عضویت در مجموعه
TaskPaneCollection، WebExtensionBindingCollection، WebExtensionPropertyCollection و WebExtensionReferenceCollection همگی رفتار پایهای مجموعه یکسانی را به اشتراک میگذارند: Add(item)، Clear()، Remove(index)، GetEnumerator() و Count.
نکات و بهترین شیوهها
- قبل از این که فرض کنید پنل افزونه در حال حاضر برای کاربر نمایش داده شده است،
TaskPane.IsVisibleرا بررسی کنید — یک پنل وظیفه میتواند ثبت شده باشد اما مخفی باشد. WebExtensionReference.StoreTypeبه شما میگوید افزونه از کجا منبعگیری شده است (کاتالوگ، Exchange، سیستم فایل، رجیستری)؛ از آن برای تشخیص افزونههای رسمی از افزونههای بارگذاری جانبی استفاده کنید.- بایندینگها یک
WebExtensionBindingTypeخاص (ماتریس، جدول یا متن ساده) را به دادههای سند پیوند میدهند — قبل از این که فرض کنید افزونه چه شکل دادهای را انتظار دارد، نوع بایندینگ را بررسی کنید. - بهجای تلاش برای ذخیره مقادیر پیکربندی ساده نام/مقدار افزونه در جای دیگری از سند، از
WebExtension.Propertiesبرای این مقادیر استفاده کنید.
مشکلات رایج
| مشکل | دلیل | رفع |
|---|---|---|
Document.WebExtensionTaskPanes خالی است | سند هیچ افزونه Office ثبتشدهای ندارد | قبل از این که فرض کنید API خراب است، تأیید کنید منبع .docx واقعاً یک پنل کار را در خود دارد |
| نمیتوان تشخیص داد افزونه از کدام فروشگاه آمده است | StoreType بررسی نشده | برای درک کامل، WebExtensionReference.StoreType را همراه با Store بخوانید |
| دادههای بایندینگ با انتظارات مطابقت ندارند | عدم تطابق نوع بایندینگ | قبل از استفاده از دادههای باند شده، WebExtensionBinding.BindingType (Matrix، Table، Text) را بررسی کنید |
FAQ
چگونه میتوانم تمام افزونههای Office ثبت شده در یک سند را پیدا کنم؟
مجموعه Document.WebExtensionTaskPanes (یک TaskPaneCollection) را فهرست کنید؛ هر TaskPane.WebExtension هویت و پیکربندی افزونه را به شما میدهد.
آیا میتوانم یک بایندینگ یا ویژگی جدید افزونه وب را با این API اضافه کنم؟
بله — مجموعهها (WebExtensionBindingCollection، WebExtensionPropertyCollection و غیره) از Add() پشتیبانی میکنند، بنابراین میتوانید اشیاء جدید WebExtensionBinding/WebExtensionProperty را به یک WebExtension موجود بسازید و اضافه کنید.
در واقع WebExtensionBinding چه چیزی را بایند میکند؟
این یک بخش از دادههای سند را به افزونه متصل میکند، با استفاده از یک WebExtensionBindingType (Matrix، Table یا Text) برای توصیف قالب آن داده.
چگونه میتوانم تنظیمات سفارشی افزونه ذخیرهشده در سند را بخوانم؟
بر WebExtension.Properties تکرار کنید (یک WebExtensionPropertyCollection)؛ هر WebExtensionProperty یک جفت Name/Value را نمایش میدهد.
API Reference خلاصه
| کلاس / متد | توضیحات |
|---|---|
Document.WebExtensionTaskPanes | TaskPaneCollection پنلهای کاری ثبتشده در سند |
TaskPane | یک پنل افزونه: DockState, Row, Width, IsVisible, IsLocked, WebExtension |
WebExtension | هویت افزونه: Id, IsFrozen, Reference, Bindings, Properties |
WebExtensionReference | منبع افزونه: Id, Version, Store, StoreType |
WebExtensionBinding | دادههای سند را از طریق WebExtensionBindingType به افزونه پیوند میدهد |
WebExtensionProperty | تنظیم سفارشی افزونه به صورت جفت Name/Value |