OLE objekty a ovládací prvky ActiveX

OLE objekty a ovládací prvky ActiveX

OLE objekty a ActiveX ovládací prvky

Aspose.Words FOSS pro .NET poskytuje přístup ke čtení vložených OLE objektů a ovládacích prvků Forms 2.0 ActiveX prostřednictvím vstupního bodu OleFormat a souvisejících tříd v Aspose.Words.Drawing a Aspose.Words.Drawing.Ole.


Přístup k datům vloženého OLE objektu

OleFormat je zpřístupněn vloženým Shape a poskytuje přístup k surovým datům a metadatům vloženého objektu. SuggestedFileName a SuggestedExtension popisují, jakým způsobem bude vložený objekt uložen, ProgId identifikuje OLE serverovou aplikaci, která jej vytvořila, a IsLink rozlišuje propojený objekt (SourceFullName/SourceItem ukazují na externí zdroj) od plně vloženého. GetOleEntry(oleEntryName) načte konkrétní pojmenovaný proud ze struktury OLE složeného souboru, GetRawData() vrátí kompletní surová data objektu a Save(fileName) / Save(stream) zapíšou nativní data vloženého objektu na disk nebo do proudu – užitečné pro extrakci původního vloženého souboru (například vložené tabulky nebo prezentace) bez otevření v jeho nativní aplikaci. OlePackage, dosažený přes OleFormat.OlePackage, zpřístupňuje FileName a DisplayName pro objekty vložené jako OLE balíček.


Práce s ovládacími prvky Forms 2.0 ActiveX

Když je vložený objekt Microsoft Forms 2.0 ActiveX ovládací prvek (zaškrtávací políčka, textová pole, rozbalovací seznamy a podobné interaktivní ovládací prvky místo vložených dokumentů), OleFormat.OleControl vrací OleControl. Zkontrolujte jeho vlastnost IsForms2OleControl a pokud true, přetypujte jej na Forms2OleControl (abstraktní základní třídu pro všechny ovládací prvky Forms 2.0), abyste získali specifické vlastnosti ovládacího prvku: Caption, Value, Enabled, Type (hodnota Forms2OleControlType – CheckBox, Textbox, ComboBox, OptionButton, ListBox, CommandButton a další), plus vizuální vlastnosti ForeColor, BackColor, Width a Height. Ovládací prvky kontejneru, jako jsou rámečky, zpřístupňují své vnořené ovládací prvky přes ChildNodes, což je Forms2OleControlCollection.


Tipy a osvědčené postupy

  • Zkontrolujte OleFormat.IsLink, než předpokládáte, že data vloženého objektu jsou lokálně přítomna — propojené objekty odkazují na externí soubor pomocí SourceFullName místo vložení jejich obsahu.
  • Použijte SuggestedExtension spolu s Save() k vytvoření rozumného názvu výstupního souboru při hromadném extrahování vložených objektů.
  • Vždy zkontrolujte OleControl.IsForms2OleControl, než provedete přetypování na Forms2OleControl — ne každý OleControl je ovládací prvek Forms 2.0.
  • Forms2OleControlCollection.Count a enumerace pomocí GetEnumerator() vám umožní procházet vnořené ovládací prvky uvnitř rámce nebo vícestránkového kontejnerového ovládacího prvku.

Časté problémy

ProblémPříčinaOprava
GetRawData() vrací neočekávaná/prázdná dataObjekt je odkaz (IsLink == true), nikoli vloženýNejprve zkontrolujte IsLink; vyřešte SourceFullName pro propojené objekty
InvalidCastException přetypovává OleControl na Forms2OleControlControl není ovládací prvek Forms 2.0Zkontrolujte IsForms2OleControl před přetypováním
GetOleEntry() vrací null pro pojmenovaný streamNázev streamu neexistuje ve struktuře složeného souboru tohoto objektuVypište skutečné názvy položek namísto předpokládání pevného názvu
Vnořené ovládací prvky uvnitř rámce nebyly nalezenyZkontrolováno pouze OleControl na nejvyšší úrovni, ne ChildNodesRekurzivně projděte Forms2OleControl.ChildNodes pro kontejnerové ovládací prvky

FAQ

Jak mohu extrahovat vložený objekt Excel nebo PowerPoint z dokumentu Word?

Získejte OleFormat tvaru, poté zavolejte Save(fileName) nebo GetRawData() pro získání nativních bajtů vloženého objektu; použijte SuggestedExtension k vhodnému pojmenování výstupního souboru.

Jaký je rozdíl mezi vloženým OLE objektem a ovládacím prvkem Forms 2.0?

Vložený OLE objekt (přístupný přímo přes OleFormat) je obvykle jiný dokument (tabulka, prezentace); ovládací prvek Forms 2.0 (OleFormat.OleControl → Forms2OleControl) je interaktivní prvek uživatelského rozhraní, jako je zaškrtávací políčko nebo textové pole.

Jak zjistit, zda je OLE objekt propojený místo vloženého?

Zkontrolujte OleFormat.IsLink — když true, SourceFullName a SourceItem popisují externí zdroj místo toho, aby objekt nesl vlastní data.

Můžu přečíst popisek nebo hodnotu zaškrtávacího políčka?

Ano — přetypujte OleControl na Forms2OleControl (po potvrzení IsForms2OleControl) a přečtěte Caption a Value.


API Reference Shrnutí

Třída / MetodaPopis:
OleFormatVstupní bod pro data a metadata vloženého OLE objektu
OleFormat.GetRawData()Získat surové bajty vloženého objektu
OleFormat.Save()Uložte nativní data vloženého objektu do souboru nebo proudu
OlePackageNázev souboru/zobrazovaný název pro objekt OLE Package
OleControlZákladní reprezentace vloženého ActiveX ovládacího prvku
Forms2OleControlOvládací prvek Microsoft Forms 2.0 (zaškrtávací políčko, textové pole, rozbalovací seznam atd.)
Forms2OleControlCollectionKolekce podřízených uzlů Forms2OleControl (např. uvnitř rámce)
Forms2OleControlTypeVýčet druhů ovládacích prvků Forms2.0

Viz také:

 Čeština