Tag: vsto

Excel VSTO插件:appvisvsubsystems32.pdb未加载

我在Visual Studio 2015中创build了一个新的excel vsto插件解决scheme,并启用了Nativedebugging。 当我尝试在debugging模式下运行时,最终出现一个exception: Pic1 事实certificate,appvisvsubsystems32.pdb没有加载。 当我尝试加载它说,它不能被发现@微软的Symbol服务器: Pic2 我该如何解决这个问题?

从Visual Studio中创build没有VSTO文件的Excel项目

我在Visual Studio中使用Visual Basic 2010(.Net 4.0)创build了一个Excel工作簿项目,当我开始一个新项目时,给出了三个选项,Excel 2010加载项,Excel 2010模板和Excel 2010工作簿。 我去了Excel 2010工作簿,因为在MSDN中我发现: 但是,Word模板和Excel模板项目模板使用户可以在解决scheme中轻松创build新的本地文档或自定义模板的工作簿副本。 您的解决scheme中的function可以从用户通过模板创build的新文档中获得。 所以,我的理解是,如果我在工作簿中创build解决scheme,则可以将其发送给我的同事,他们将能够使用工作簿本身的解决scheme。 问题是当他们打开工作簿时,他们被要求安装一个VSTO文件: VSTO问题图片 我认为通过使用文档级定制项目会让我免费的VSTO,但没有。 我已经通读了整个相关的MSDN页面,没有解决我的问题。 所以我的问题是: 有人知道如何创build解决scheme,而不使用VSTO文件? 你会推荐我做什么? 非常感谢您花时间阅读我的文章。

使用InvokeMember通过C#在Excel中培养特定的属性

当我们在C#中通过COM调用Excel对象模型时,它始终使用en-US文化(这是几年前做出的改变,因此无论区域设置如何,都可以在所有机器上使用插件)。 我想调用具有特定文化的Excel对象模型,根据Excel文档执行此操作的方法是使用InvokeMember并传递cultureInfo参数。 https://msdn.microsoft.com/en-us/library/bb157877.aspx 但是,每当我尝试使用除en-US之外的语言环境时,我得到一个System.Reflection.TargetInvocationException。 所以在下面的示例代码中,这个调用将与en-US文化一起工作,但是用fr-CA文化抛出exception。 请注意,在区域设置中更改当前文化不会影响是否抛出exception。 虽然它将根据区域设置确定是否将string解释为使用Value2属性时的数字。 我基于这个例子的代码,这个代码写得很好用: https : //social.msdn.microsoft.com/Forums/office/en-US/2aee0a8a-aaff-48a8-9364-edf1e3fbb9b4/setting -rangevalue2-行为改变之间净20和净40换国际版本-的?论坛= exceldev 有没有人知道我可以做什么样的改变来调用Range.Value2以及en-US以外的特定文化? private void ThisAddIn_Startup(object sender, System.EventArgs e) { try { var excelApp = Globals.ThisAddIn.Application; var workbook = excelApp.Workbooks.Add(); var worksheet = (Excel.Worksheet)workbook.Worksheets[1]; var rangeA1 = worksheet.Range["A1"]; var rangeB1 = worksheet.Range["B1"]; string num1English = "1.1"; string num1French = "1,1"; rangeA1.GetType().InvokeMember("Value2", BindingFlags.Instance | BindingFlags.SetProperty […]

VSTO处理大file upload和“Microsoft office Excel正在等待另一个进程完成OLE动作”

我的VSTO插件需要上传大文件到我们的服务器,所以为了做到这一点,我一直在使用HttpClient.PostAsync 。 会发生什么是相当大的文件(> 100Mb,但我们需要处理文件高达5Gb)我得到的“Microsoft Office Excel正在等待另一个进程来完成一个OLE动作”的错误。 它不能及时触发TaskCanceledException 。 我已经尝试了Application.DisplayAlerts = false解决scheme,但是它并没有触发模态警告我们,请求仍然被取消。 这是发送请求的代码: using (HttpClient client = HttpClientFactory.Create(progressHandler)) using (MultipartFormDataContent formData = new MultipartFormDataContent()) { formData.Add(fileStreamContent, "file"); HttpResponseMessage response = await client.PostAsync(url, formData); if (response == null || response.StatusCode != HttpStatusCode.OK) return null; return response.Content.ReadAsStringAsync().Result; } 我最后的手段是手动stream文件通过阅读块并发送。 但是,这种方式打败了使用HttpClient来传输file upload的目的。 我寻找方法来增加或删除任务被取消之前的延迟,但无济于事。

VSTO无法读取App.Config

部署VSTO Excel加载项后,我无法读取app.config文件。 我的问题与此相同: VSTOdebugging版本正常,安装版本不读取app.config 除了,当我更改registry项以使用file:///后,我得到以下错误: 公共语言运行库无法通过file:/// C:\ Program Files(x86)\ company \ product \ addin.vsto | vstolocal加载。 请联系您的pipe理员以获取进一 没有使用file:/// ,加载项加载正常,但不读取configuration文件。 我正在使用以下软件: Excel 2010(已安装 – 32位) VSTO 2010(10.0.60724 – 64位) Windows 7(64位) .NET(4.6.00081) 这里的链接说,基于我的软件,我需要安装64位的VSTO: https://msdn.microsoft.com/en-us/library/bb608603.aspx?f=255&MSPPError=-2147217396 我试图安装.NET 4.0和.NET 4.5,但安装4.6后,它不会继续。 4.6是加载项所必需的。 有什么我失踪,需要得到这个工作?

如何在Excel VSTO中获取单元格和对象(如图表,graphics和图片)的openxml?

我们可以使用VSTO从Word文档中提取形状和图片的openxml,我也想为excel做同样的事情。 我尝试循环通过自定义XML部分,但没有运气。 Excel.Workbook doc = Globals.ThisAddIn.Application.ActiveWorkbook; foreach (Microsoft.Office.Core.CustomXMLPart p in doc.CustomXMLParts) { string bn = p.DocumentElement.BaseName; string cxml = p.XML; } Word的代码就像这样。 ctrl是一个书签,GetInnerRange返回该书签的范围。 Word.Range inner = GetInnerRange(ctrl); string xml = inner.WordOpenXML;

我怎样才能得到属于Microsoft.Office.Interop.Excel的ChartObject的Excel图表configuration

这里是一个excel文件,里面有一个工作表,还有一些工作表中的数据。 然后用户创build一个图表,就像'xlLine'或'xlColumnClustered',并设置一些configuration信息,如图表标题,CategoryTitle,ValueTitle等。 而我怎样才能得到configuration信息,尤其是图表的选定数据区? THS! 工作表和图表 一些代码 //Get the current worksheet Microsoft.Office.Tools.Excel.Worksheet worksheet = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet); //Get ChartObjects Microsoft.Office.Interop.Excel.ChartObjects objs = (ChartObjects)worksheet.ChartObjects(Type.Missing); //Just get the first ChartObject Microsoft.Office.Interop.Excel.ChartObject obj = objs.Item(1); //Get the chartTitle string chartTitle = obj.Chart.ChartTitle.Caption;

如何在C#VSTO for Excel中使用RegisterXLL方法

我已经使用ExcelDNA创build了一个xll插件,以便于用C#编写。 我还有一个VSTO,我希望VSTO能够注册xll文件,以便在用户使用VSTO插件的时候可以使用自定义函数。 这是在Addin启动方法中编写的内容: Application.RegisterXLL(@"SMPXLL.xll"); 这将工作,如果我写的.xll文件的绝对地址。 但是,我希望它是一个相对的地址。 我只是不知道该文件是相对于什么。

如果你有Excel7的窗口句柄,你可以得到一个Excel工作簿吗?

使用这里描述的本地窗口挂钩方法,我有一个excel7窗口句柄。 https://blogs.msdn.microsoft.com/anandgeorge/2010/04/10/usage-of-nativewindow-assignhandlereleasehandle-when-unmanaged-code-is-involved/ 有没有办法使用AccessibleObjectFromWindow获取工作簿? 大部分的AccessibleObjectFromWindow用例似乎是为了获得应用程序本身的句柄,但那不是我所需要的,因为我已经通过我的VSTO插件获得了。

VSTO c#:如何突出Excel中的活动单元格的行和列?

当我查看包含大量数据的大型工作表时,我想通过select特定的行和列来突出显示所选单元格的行和列。 我不想改变他们的背景颜色。 我知道如何在VBA中工作,但如何为C#? VBA code: stAreaToMark = stRowToMark + ":" + stRowToMark + "," + stColToMark + ":" + stColToMark; sh.Range(stAreaToMark).Select;