1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Word处理控件Aspose.Words功能演示:使用 C# 在 Word 文档中创建和修改 VBA 宏

Word处理控件Aspose.Words功能演示:使用 C# 在 Word 文档中创建和修改 VBA 宏

时间:2018-07-26 08:11:46

相关推荐

Word处理控件Aspose.Words功能演示:使用 C# 在 Word 文档中创建和修改 VBA 宏

Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.words 最新下载(qun:761297826)/product/4116/download

Microsoft 支持在 MS Word 文档中添加 VBA 宏来自动或触发各种操作。在以编程方式处理 Word 文档时,您可能必须操作 VBA 宏。对于此类情况,本文将演示如何在 C# 中的 Word 文档中添加或修改 VBA 宏。

使用 C# 在 Word 文档中创建和修改 VBA 宏

此版本中添加了一个新属性 VbaModule.SourceCode 以获取或设置 VBA 项目模块源代码。以下代码示例演示如何使用 VbaModule.SourceCode 属性修改 VBA 宏。

// For complete examples and data files, please go to /aspose-words/Aspose.Words-for-.NETDocument doc = new Document(dataDir + "test.docm");VbaProject project = doc.VbaProject;const string newSourceCode = "Test change source code";// Choose a module, and set a new source code.project.Modules[0].SourceCode = newSourceCode;

在 Word 文档中创建重复节内容控件

MS Word 允许您在 Word 文档中插入带有 XML 映射的重复内容控件。您可以在整个段落或表格行周围插入重复内容控件。我们在最新版本的 Aspose.Words 中添加了此功能。此版本中添加了新的枚举类型RepeatingSectionItem 。

// For complete examples and data files, please go to /aspose-words/Aspose.Words-for-.NETDocument doc = new Document();DocumentBuilder builder = new DocumentBuilder(doc);CustomXmlPart xmlPart = doc.CustomXmlParts.Add("Books","<books><book><title>Everyday Italian</title><author>Giada De Laurentiis</author></book>" +"<book><title>Harry Potter</title><author>J K. Rowling</author></book>" +"<book><title>Learning XML</title><author>Erik T. Ray</author></book></books>");Table table = builder.StartTable();builder.InsertCell();builder.Write("Title");builder.InsertCell();builder.Write("Author");builder.EndRow();builder.EndTable();StructuredDocumentTag repeatingSectionSdt =new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");table.AppendChild(repeatingSectionSdt);StructuredDocumentTag repeatingSectionItemSdt =new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);Row row = new Row(doc);repeatingSectionItemSdt.AppendChild(row);StructuredDocumentTag titleSdt =new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Cell);titleSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book[1]/title[1]", "");row.AppendChild(titleSdt);StructuredDocumentTag authorSdt =new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Cell);authorSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book[1]/author[1]", "");row.AppendChild(authorSdt);doc.Save(dataDir + "Document.docx");

使用 XML、JSON 和 CSV 数据源的 LINQ 报告

如您所知,LINQ 报告引擎使您能够使用一组扩展的报告功能来构建报告。该引擎使您能够在报告模板中引用应用程序的业务对象。我们在此版本中添加了 XmlDataSource、JsonDataSource 和 CsvDataSource 类,以使用 XML、JSON 和 CSV 作为数据源来使用 LINQ 报告生成报告。有关此功能的完整详细信息,请阅读以下文章。

访问 XML 数据访问 JSON 数据访问 CSV 数据

将自定义文档属性链接到书签

MS Word 允许您将自定义文档属性链接到书签。在 MS Word 中,您可以在文档属性对话框下选中此选项。在此版本中,我们在 DocumentProperty 类中添加了 LinkSource 和 IsLinkToContent 属性,并在 CustomDocumentProperties 类中添加了方法 AddLinkToContent。以下代码示例显示如何将自定义文档属性链接到书签。

// For complete examples and data files, please go to /aspose-words/Aspose.Words-for-.NETDocument doc = new Document(dataDir + "test.docx");// Retrieve a list of all custom document properties from the file.CustomDocumentProperties customProperties = doc.CustomDocumentProperties;// Add linked to content property.DocumentProperty customProperty = customProperties.AddLinkToContent("PropertyName", "BookmarkName");// Also, accessing the custom document property can be performed by using the property name.customProperty = customProperties["PropertyName"];// Check whether the property is linked to content.bool isLinkedToContent = customProperty.IsLinkToContent;// Get the source of the property.string source = customProperty.LinkSource;// Get the value of the property.string value = customProperty.Value.ToString();

以上便是如何在 C# 中的 Word 文档中添加或修改 VBA 宏 ,要是您还有其他关于产品方面的问题,欢迎咨询我

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。