从Excel公式中解析和提取细胞参考?
我希望从Excel公式中解析和提取细胞参考.假设我有以下公式P5: =SUM(P1:P4)+Q3 我正在寻找用于产生答案的公式所涉及的单元的位置的输出其他形式的表示也可以接受). 我的问题是,是否有这样的解析器可以实现这一目标,如果没有,我应该采用哪种技术.也许我列出的公式非常简单,我理想情况下,我希望涵盖所有潜在的公式,甚至是那些在其他床单和工作簿中都有参考的公式.我希望并且真的希望有一个基于VSTO C#的解决方案,但是我在VSTO库中找到一个甚至相关功能的时间非常困难. 解决方案 对于简单公式: Sub PrettyPoorParser() Dim r As Range, rr As Range With Range("D4") Set r = .DirectPrecedents msg = r.Count For Each rr In r msg = msg &
18 2024-04-26
编程技术问答社区
COM插件在word 2007中没有消失
我有两个不同的com加载项,一个用于Word 2003,一个用于Word 2007. Word 2003每次都像魅力一样工作,没有问题等...但是现在,当我打开Word 2007时,Word 2003的按钮出现在我的Word 2007功能区中.即使在我禁用加载项或清洁项目之后,这仍然会发生...我已经尝试了所有内容,包括删除我的Word 2003加载项的所有.dlls,但问题仍然存在... 关于问题是什么建议? 欢呼 解决方案 如果您在安装时将这些按钮配置在模板中以外的其他模板中配置这些按钮. 它们会自动"走开". 通常认为更改正常.执行,修改normal.dot,这些更改将在您卸载addin后会持续. 其他解决方案 您必须"手动"删除按钮作为卸载过程的一部分.这是我使用的代码: public static void removeWordToolbarButton( Microsoft.Office.Interop.
10 2024-04-26
编程技术问答社区
在word文档的页脚添加图片
I have a problem with my program.我需要在Word文档的页脚中添加图片. I have 2 functions, replacing bookmarked text and add images.替换书签文本作品.添加图像不起作用,我在Stackoverflow上搜索了几天,但是找不到任何毛笔.我希望有人可以帮助我. private static void AddImages(Document wordDoc, string imagePath){ var sec = wordDoc.Application.Selection.Sections[1]; var ft = sec.Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary]; var rngFooter = ft.Range; object oRange = r
8 2024-04-26
编程技术问答社区
Visio VSTO中有任务窗口吗?
我需要为使用VSTO开发的Visio 2010加载项创建一个可停靠的窗口,但是我看不到为Visio创建任务窗格. 我错过了什么吗? 解决方案 您在Visio中创建可停靠的窗口.这些是"锚"窗口. 请参阅此MSDN页面: http://msdn.microsoft.com/en -us/library/ff767674.aspx 例如:几年前,我创建了一个锚窗口来模拟Office Ribbon UI,该窗口UI当时在Visio 2007中不可用: http://blogs.msdn.com/b/saveenr/saveenr/archive/2007/02/27/27/adding-- a-ribbon-to-visio.aspx 其他解决方案 不幸的是,Visio 2007和Visio 2010均不支持自定义任务窗格. 其他解决方案 您可以将自定义任务窗格添加到 visio 的应用程序中: P> 打开或为应用程序创建应用程序级项目. 在项目菜
12 2024-04-26
编程技术问答社区
如何使用C#和VSTO将未经格式化的特殊纯文本粘贴到Excel中?
很难相信这个问题没有被问到或不可能,但这就是我从Web搜索中看到的. 我要做的就是使用VSTO仅粘贴未构造的纯文本到活动单元格范围内.使用 range.pastespecial 仅给出粘贴值的选项(等),但其中包括格式.是否真的没有选择使用tastepecial粘贴未格式化的文本? 是否有其他人发现这样做的其他方法?在此应用程序中,使用宏不是一个选项. 这正是我尝试的: ((Excel.Range)Application.Selection).PasteSpecial(Excel.XlPasteType.xlPasteValues); 解决方案 excel.xlpasteType.xlpastevalues不会为我做这件事很奇怪,但是我最终只是做以下操作,它有效: string textToPaste = (string)Clipboard.GetData("Text"); Clipboard.SetData("Text", textToPaste);
8 2024-04-26
编程技术问答社区
Outlook VSTO-为WordEditor文档超链接添加新行
我正在使用以下代码将超链接添加到我的MailItem object link = url + System.Environment.NewLine; Microsoft.Office.Interop.Outlook.MailItem currentMessage = MyAddIn.Application.ActiveInspector().CurrentItem; Microsoft.Office.Interop.Word.Document doc = currentMessage.GetInspector.WordEditor; Microsoft.Office.Interop.Word.Selection sel = doc.Windows[1].Selection; doc.Hyperlinks.Add(sel.Range, ref result, ref missing, ref missing, ref link, ref missing); 虽然这确实在Outl
14 2024-04-26
编程技术问答社区
Outlook VSTO-在选择时调用TypeText会产生 "此命令不可用 "的异常。
调用TypeText Selection投掷"此命令不可用."异常 以下是我的代码 public void AddFilePaths(List urls) { if (urls.Count > 0) { MailItem mi = null; bool newMailItem = false; mi = MyAddIn.Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); mi.Body = "New email body"; newMailItem = true; mi.Display(); inspector = MyAddIn.Application.ActiveInspector(); if (mi
12 2024-04-26
编程技术问答社区
无法取消PowerPoint中的SmartArt形状的分组
我尝试从代码中解开SmartArt形状,但它总是会导致错误:"只能为组访问此成员". 但是,如果我右键单击SmartArt形状并取消组. 我该如何修复? 我的代码是: public void CreateSmartArt(PowerPoint.Shapes allShapes) { PowerPoint.Shape smartartShape = allShapes.AddSmartArt(IttPowerPoint.Instance.PowerPointApp.SmartArtLayouts["MyLayOut"], 0f, 0f, width, height); Marshal.ReleaseComObject(smartartShape); smartartShape = null; } Public void UngroupSmartArt(PowerPoint.Shape shape) { try
20 2024-04-26
编程技术问答社区
从Excel vba中调用c# .net库方法并传递工作簿对象
情况.. 对于我的项目,我需要对某些Excel文档的内容执行一些复杂的操作.因此,我认为在C#中而不是在VBA宏中编程逻辑会更方便.由于我不仅需要一个文档中需要这种逻辑,而且我需要在不同文档中的不同片段,所以我想从vba宏中调用c#方法. so .. 我是这个答案,它确实解决了问题.但是,似乎我需要将ThisWorkbook对象从VBA传递到.NET方法中,因此Excel.exe在关闭应用程序后仍在后台活跃(Task Manager>详细信息).下次我打开Excel时,它立即崩溃,然后将其正确关闭. 这是我唯一的问题,我非常沮丧,无法解决.有什么想法吗? 我考虑的.. 工作(不完美)解决方案是制作文档级别VSTO加载项.但是,我对需要进行小型更改并重新编译每个不同文档的整个项目并不感到非常兴奋.如果我可以集中C#逻辑并从不同的文档中需要它,那就更好了. 使应用程序级别VSTO加载项也不需要,因为我为公司工作的所有用户都需要安装VSTO加载项,然后才能
12 2024-04-26
编程技术问答社区
办公室(特别是Outlook)插件
我们想为Outlook,Word和Excel开发addins.到目前为止,我知道两种类型的解决方案.一个要用于共享加载项(基于com),另一种是构建基于VSTO的加载项. 我是新手,这是更好的选择? (或者,如果有第三种方式,请告诉我)我们将目标定位于2003年和2007年.而且我更喜欢在C#中开发此addins. 解决方案 不是直接的问题答案,而是在开始加接开发之前值得考虑的:正如里德所说的那样,在使用vb.net开发办公室加载项时,比使用C#使用C#会使生活变得容易得多. . 打入Office对象模型的调用通常会丢出几个可选参数.但是,在C# - 中,由于C#尚未(尚未)具有可选参数,因此您必须指定每个可选参数.不够,对于COM加载程序,您还必须自己照顾自己的参数,即,您不必传递简单的布尔或INT,而必须先将其转换为参考类型.所有这些都使代码非常不可读. 例如.在c#中打开文档的代码看起来像: object objTrue = true; object ob
18 2024-04-26
编程技术问答社区
c# excel图像
嗨,我已经在Excel工作表上插入了图像... 如何参考C#的此图像,非常感谢! 解决方案 您将需要使用剪贴板对象和Excel Interop组件.请参阅其他解决方案 有两种方法可以做到这一点:启动Excel并通过API获取图像,或使用Open XML格式直接打开Excel文件.我会推荐后者.请参阅: 有关格式的详细信息.
12 2024-04-26
编程技术问答社区
将数据传入VSTO的Excel工作簿?
我有一个VSTO Excel工作簿项目,我用来收集用户的信息.该工作簿是从主机应用程序内部启动的,但是在打开它之前,我需要将一些参数传递给工作簿,以便知道该显示什么以及如何显示.最好的方法是什么? 解决方案 有一种将数据传递给工作簿的方法,我个人并不喜欢,但也许可以适合您.基本上,您在工作簿中设置特定单元格的值,然后在Excel的事件处理程序中处理这些值: Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook wb = excel.Workbooks.Open(filepath); var sheet = (Microsoft.Office.Interop.Excel.Worksheet
12 2024-04-26
编程技术问答社区
Outlook插件:如何根据自定义逻辑自动回复?
问题 有可能,Outlook加载项可以根据自定义逻辑自动回复某些电子邮件/发件人?如果是这样,如何? 示例 这样的加载项可能仅向未联系中的发件人发送自动答复,或者仅向已通过外部服务验证的电子邮件(加载项调用以进行检查)的发件人.此自动答复可能是: 感谢您的电子邮件!我优先考虑经过验证的发件人的电子邮件.您可以免费验证自己在这里 接收该消息的发件人可以单击链接并通过外部服务验证.然后,对于将来的电子邮件,自动答复将不适用于该发件人. 背景 Outlook在设置中具有自动答复选项,但其功能仅限于为内部发件人设置特定消息,而外部发件人的功能则不同,然后选择是否仅使用与联系人使用自动答复.没有内在的能力来完成上面示例中描述的内容. 其他问题和答案(可能相关) 如何编辑使用C#:在Outlook中的自动答复也可能是相关的,但答案中也有一个断开的链接(大约7年前). 任何帮助都将不胜感激! 解决方案 Outlook Web附加组件设计用
4 2024-04-26
编程技术问答社区
使用VSTO加载项编程获取缎带的列表
我已经创建了一个使用Visual Studio 2019的C#VSTO加载项,该加载项从插座连接接收命令,并且可以使用Office Interop插入文本,仅在我的功能区中修改按钮. 我想知道两件事. 我如何获得所有丝带的名称(家庭,插入,设计, ....)以编程方式? 在我创建的丝带上启动鼠标单击(例如,在"主页"选项卡中单击BOLD按钮). 对于第二个问题,我只想使用Office加载项,而不是通过模拟按键/鼠标事件. 解决方案 如何以编程方式获得所有丝带的名称(家庭,插入,设计,....)? 没有琐碎的方法来完成这项工作.您可以尝试使用可访问性api . Microsoft Active Accessibility是一种基于组件对象模型(COM)的技术,可改善可访问性AIDS与Microsoft Windows上运行的应用程序一起工作的方式.它提供了包含在操作系统中的动态链接库以及COM接口和API元素,可提供可靠的方法来揭示有关UI元素的信息.
10 2024-04-26
编程技术问答社区
C#: 将选定的Outlook信息保存为eml文件
我使用C#创建了一个用于Outlook的附加组件.建议将其连接到外部文档管理系统(DMS),并将文档/电子邮件上传到其中.现在,我想通过单击插件的按钮将" Outlook"窗口中的选定消息保存到DMS(请参见上图).有什么正确的方法可以毫无用处吗?如果否,请提供以替代方式进行的方法. 下面是我的按钮和消息看起来像 的示例 解决方案 Outlook对象模型不支持EML(MIME)格式保存消息. 您可以 1一次在代码中明确创建MIME文件.您还可以使用现有的MIME转换器(我过去使用过Lumisoft) - 但是它们不会在单个呼叫中转换Outlook消息;您将需要明确构建所有标题和MIME零件. 2使用 3使用 iconvertersession> iconvertersession quar它可用于(Outlook 2003及以上)或其自己的转换器,可用于旧版本的Outlook,或者使用与MAPI的Exchange版本使用.以下脚本将将当前选择的消息保存为
10 2024-04-26
编程技术问答社区
无法覆盖Windows 10/11 VSTO应用程序的通知应用程序标志
Outlook加载项VSTO项目在发送本地通知时无法覆盖应用程序徽标,使用.AddAppLogoOverride() 时,没有文本或徽标最终会覆盖徽标 private void CallNotification() { CreateToastNotification("This is test header", "First line of notification", "...second line..."); } public void CreateToastNotification(string title, string message, string message2) { ToastContent content = new ToastContentBuilder() .AddText(title) .AddTe
12 2024-04-26
编程技术问答社区
C#VSTO在打印之前和之后替换文档中的图像
我正在使用一个Word vsto加载项,以自动为我工作的公司提供一些公司身份. 我想在致电PrintOut 之前和之后替换某些图像 这是我当前正在使用的方法 public static void PrintDocumentAsPDF(this WordRibbon _, string printerName = "Microsoft Print to PDF") { try { // Un-Protected Document Globals.ThisAddIn.Application.ActiveDocument.Unprotect(""); } catch (COMException) { } // Replace Images in Document Extensions.ReplaceImage(Constants.ImageType.DesignElement, Constant
30 2024-04-26
编程技术问答社区
在VSTO中存储并打开工作簿作为 "资源"
所以,我有一个工作簿,该工作簿非常复杂,可以在程序上繁殖.为了使我的工作更快,更容易,我正在寻找一种解决方法,以将工作簿"存储"到我的VSTO中,以免费打开其副本. 这对我来说似乎很有用,但我现在还没有找到任何方法. 我希望有人可以帮助我做或向我解释如何做更好的方法. 解决方案 因此,在尤金(Eugene)的帮助下,我想到了一种方法. 它使我能够帮助另一个人,以便更多信息查看我的答案: 谢谢. 其他解决方案 您可以将其与其他文件一起包含在VSTO加载程序安装程序中.因此,将在安装程序文件夹中使用其他附加文件保留工作簿.在任何时候,您都可以复制.无需将其包括在资源中. 无论如何,如果您需要从资源中提取文件,请参见在C#中提取嵌入式资源: System.IO.Stream fs = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(currentResour
8 2024-04-26
编程技术问答社区
如何查看Outlook电子邮件是否加密?
我使用Office 2016中的Outlook2016.我开发了VSTO Outlook插件,将电子邮件上传到数据库(最初它将其保存为硬盘驱动器上的临时文件).如何检查电子邮件是否已加密?如何检查电子邮件是否已登录?请参阅第一个图像显示用户如何加密. 注意:当收到和解密电子邮件时,它看起来"正常",没有解密.但是其他用户无法打开保存的电子邮件,请参阅带有消息的第二张图像"基础安全系统无法找到您的数字ID名称".当前,没有任何要求解密电子邮件的任务,而只是不添加系统中的加密. 谢谢. if (item is Outlook.MailItem) { var mailItem = item as Outlook.MailItem; // Check //if (mailItem.IsEncrypted) ... // Here I need help // show user warning and exit mailItem.Sa
10 2024-04-25
编程技术问答社区
VSTO 如何在加载时填充 XML 功能区组合框?
我正在努力尝试加载项目列表(最好是来自CSV等文件等),并用这些项目填充ComboBox.然后,我希望能够获取所选项目的文本.我在其他C#项目中通常会这样做,但是在VSTO XML中似乎并没有使用相同的方式.任何帮助将不胜感激. 编辑要添加代码...我找到了添加项目需要的ribbondropdownItem接口,但是下面的c#无法工作,因为它无法在xml中找到cboitems对象. 在
16 2024-04-25
编程技术问答社区