翻譯|使用教程|編輯:胡濤|2022-07-27 10:10:32.143|閱讀 174 次
概述:本文主要介紹如何在C#獲取Word文檔中內容控件的別名、標簽和ID,歡迎查閱!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
內容控件為您提供了一種設計文檔的方法。當您向文檔添加內容控件時,該控件由邊框、標題和可以向用戶提供說明的臨時文本標識。根據微軟的說法,內容控件主要受益于兩個功能:
因此,開發者在運行時處理內容控件時,需要獲取內容控件的屬性。本文說明如何通過 Spire.Doc 獲取所有控件及其屬性,包括別名、id 和標記。
首先,檢查包含六個按行和表格分布的內容控件的測試文件。默認情況下,如果我們不點擊受保護的部分,控件的邊框和標題不會出現。
測試文件:
主要步驟:
第 1 步:創建一個新的 Word 文檔并加載測試文件。
第 2 步:創建兩個列表來存儲標簽,這些標簽分別以行和表的形式分布。在這里,每個內容控件都將由標簽標識。
第 3 步:使用foreach語句獲取Word文檔中的所有標簽。
完整代碼:
static void Main(string[] args) { using (Document document = new Document(@"..\..\TestData\test.docx")) { StructureTags structureTags = GetAllTags(document); List<StructureDocumentTagInline> tagInlines = structureTags.tagInlines; string alias = tagInlines[0].SDTProperties.Alias; decimal id = tagInlines[0].SDTProperties.Id; string tag = tagInlines[0].SDTProperties.Tag; List<StructureDocumentTag> tags = structureTags.tags; alias = tags[0].SDTProperties.Alias; id = tags[0].SDTProperties.Id; tag = tags[0].SDTProperties.Tag; } } static StructureTags GetAllTags(Document document) { StructureTags structureTags = new StructureTags(); foreach (Section section in document.Sections) { foreach (DocumentObject obj in section.Body.ChildObjects) { if (obj.DocumentObjectType == DocumentObjectType.Paragraph) { foreach (DocumentObject pobj in (obj as Paragraph).ChildObjects) { if (pobj.DocumentObjectType == DocumentObjectType.StructureDocumentTagInline) { structureTags.tagInlines.Add(pobj as StructureDocumentTagInline); } } } else if (obj.DocumentObjectType == DocumentObjectType.Table) { foreach (TableRow row in (obj as Table).Rows) { foreach (TableCell cell in row.Cells) { foreach (DocumentObject cellChild in cell.ChildObjects) { if (cellChild.DocumentObjectType == DocumentObjectType.StructureDocumentTag) { structureTags.tags.Add(cellChild as StructureDocumentTag); } else if (cellChild.DocumentObjectType == DocumentObjectType.Paragraph) { foreach (DocumentObject pobj in (cellChild as Paragraph).ChildObjects) { if (pobj.DocumentObjectType == DocumentObjectType.StructureDocumentTagInline) { structureTags.tagInlines.Add(pobj as StructureDocumentTagInline); } } } } } } } } } return structureTags; } public class StructureTags { List<StructureDocumentTagInline> m_tagInlines; public List tagInlines { get { if (m_tagInlines == null) m_tagInlines = new List(); return m_tagInlines; } set { m_tagInlines = value; } } List<StructureDocumentTag> m_tags; public List tags { get { if (m_tags == null) m_tags = new List(); return m_tags; } set { m_tags = value; } } }
效果截圖:
行中的內容控件
表格中的內容控件
歡迎下載|體驗更多E-iceblue產品
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn