Tag: office interop

通过Interop为Microsoft Access创建宏

是否可以使用C#中的Interop库以与Word,Excel或PowerPoint类似的方式创建新的宏? 在其他应用程序中,您可以访问Microsoft.Vbe.Interop._VBComponent ,它允许您通过Document , Worksheet或Presentation类注入新的宏。 它看起来不像Access有类似的东西。 Access具有AllMacros列表,但它似乎是只读的。 我知道如何在项目中执行宏,但我需要能够动态添加宏。 我非常感谢任何可以指出我正确方向的人。

在C#和VBA之间进行通信

应我老板的要求,我创建了一小组脚本,用于定期监控某些设备和进程的状态。 随后使用相对复杂的VBA模块处理此信息,该模块收集所有信息,应用公式,设置范围并生成图表等。 但是有两个问题:我是业余程序员,所以我的VBA例程非常低效。 这对我来说不是一个大问题(我只是在跑步时起床喝咖啡),但对于其他用户来说,这可能很麻烦,因为不知道为什么这么长时间。 我想要一个进度的图形表示。 应用程序的配置是通过文本文件完成的。 我想提供一个体面的GUI来设置配置。 为了实现这一点,我正在寻找一种让我的C#WinForms应用程序与我的VBA应用程序通信的方法。 我知道如何从我的C#应用​​程序运行VBA例程,但我不知道如何让它们实时进行操作。 以下是我特别想要实现的两件事: 我已经有一个在VBA例程结束时保存的日志文件。 而不是我想要将log / debugging-messages实时发送到我的C#应用​​程序 (不仅仅是在应用程序的末尾),因此消息可以在我的GUI应用程序中显示,因为它们是由VBA应用程序生成的。 我还希望VBA应用程序将有关实时进度的信息发送到我的GUI应用程序,以便在GUI应用程序中创建图形化进度条 。 我已经考虑过通过标准输出进行通信。 我知道如何使用C#/ .Net从标准输出中读取,但我不确定如何使用VBA写入StdOut流。 我相信很多人会指出我想要实现的是愚蠢和老式(或完全没必要),但作为业余程序员,对我来说这似乎是一个非常具有挑战性和有趣的项目,可以教我一件事或两个。

我将如何使用下面的DocumentFormat.OpenXml -details从docx文件中提取数据

我有一个通过添加xml架构创建的Docx文件。 我给你docx文件的链接。 现在我想提取 – To,From,heading,body。 目前我正在使用Library DocumentFormat.OpemXml。 但没有成功。 可以任何人建议我的步骤。

使用c#中的microsoft office互操作单词的文档中的不同第一页

如何使用Microsoft.office.interop.word在文档中创建不同的第一页页眉和页脚。 我尝试了以下代码,但只在第一页,页眉和页脚即将到来。 我想以其他方式(第一页不应该有页眉和页脚)。 谁能帮帮我吗 ? 我尝试了很多。 Microsoft.Office.Interop.Word.Application w = new icrosoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Document doc; w.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = -1; doc.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekCurrentPageHeader; doc.ActiveWindow.Selection.TypeText(“HEader Text”);

C#中的MS Word Automation – 无法将’System.String ‘类型的对象强制转换为’System.String ‘

我使用此代码获取MS Word 2007文档(.docx)中使用的标题字符串数组: dynamic arr = Document.GetCrossReferenceItems(WdReferenceType.wdRefTypeHeading); 使用调试器,我看到arr被动态分配了一个String数组,其中包含文档中所有标题的标题(大约40个条目)。 到现在为止还挺好。 然后,我想访问字符串,但不管我怎么做,我得到以下exception: InvalidCastException: Unable to cast object of type ‘System.String[*]’ to type ‘System.String[]’. 我尝试了不同的访问字符串的方法: 按索引: String arr_elem = arr[1]; 通过强制转换为IEnumerable: IEnumerable list = (IEnumerable)arr; 通过使用简单的foreach循环: foreach (String str in arr) { Console.WriteLine(str); } 但是,无论我尝试什么,我总是会遇到如上所示的相同exception。 任何人都可以解释我在这里缺少什么/我做错了什么? 特别是String[*] – 它是什么意思?

使用Microsoft.Office.Interop.Word程序集

我必须用c#编写一个word文档编程。 有没有办法访问Microsoft.Office.Interop.Word程序集而不安装Microsoft Word? 我尝试安装Office主互操作程序集但它要求我先安装Microsoft Office程序包。

使用Office.Interop将行添加到MS Word表

我有一个带有表格的单词模板,我从一个字符串列表填充,我使用制表符分割。 我不知道会有多少行文字,因为它会有所不同。 所以我在迭代循环之前以编程方式添加一行,如下所示: oWordDoc.Tables[2].Rows.Add(oWordDoc.Tables[2].Rows[1]); 不幸的是,它是在前一行而不是在当前行之后添加行。 如何更改我的代码以在当前行之后添加空行?

Word自动查找和替换不包括文本框

我有一个word文档,它有一个文本框。 当我运行自动查找并替换主文档中的匹配,但不匹配文本框中的任何内容。 我如何告诉查找和替换function包括文本框。 Word.Range range = objDoc.Content; object findtext = Field; object findreplacement = Value; object findwrap = WdFindWrap.wdFindContinue; object findreplace = WdReplace.wdReplaceAll; range.Find.Execute(findtext, missing, missing, missing, missing, missing, missing, findwrap, missing, findreplacement, findreplace); 我怀疑我需要更改range = objDoc.content行。

禁用在Microsoft Office interop FileSaveAs方法中覆盖现有文件提示

我正在使用Ms Office Interop程序集来创建MS Project文件。 要保存创建的文件,我使用的是FileSaveAs方法,它会提示一条消息,说明是否要替换现有文件。 我想压缩消息,我没有在FileSaveAs方法中找到任何参数用于此目的。 有什么想法吗? 我使用C#作为我的编程语言。

将不同格式合并为一行Interop.word

我一直试图弄清楚如何使用c#中的interop.word将2种不同的格式插入到同一段落中,如下所示: 你好,这是我想做的事