gpt4 book ai didi

c# - BindToMoniker 打开一个新的 excel session

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:02 25 4
gpt4 key购买 nike

以下代码尝试附加到已打开 C:\test 文件的 excel session 。如果这样的 session 不存在,则返回 null 或抛出异常。

 var myExcelWorkbook = Marshal.BindToMoniker(@"C:\test") as Excel.Workbook;

当文件没有扩展名时,这非常有效。但是,如果我尝试使用具有扩展名(例如 C:\test.xlsb)的文件使用完全相同的代码,则调用会在返回之前尝试使用 excel 打开该文件。如果一个实例已经在运行,它将尝试打开该实例中的文件(就像有人在 Windows 资源管理器中双击该文件一样)。

 var myExcelWorkbook = Marshal.BindToMoniker(@"C:\test.xlsb") as Excel.Workbook;

这肯定与扩展有关(否则 BindToMoniker 怎么知道如何打开 Excel?),但非常烦人,因为我从不想附加到尚未打开该文件的现有 excel session 。

有没有办法禁用该“功能”?我希望 BindToMoniker 方法从不尝试打开文件,让我决定在各种情况下要做什么。

最佳答案

问题很可能与 Excel 文档在“运行对象表”中的命名方式有关,而不是扩展名的存在。

阅读 IRunningObjectTable... 有 IRunningObjectTable.EnumRunning这可能有用。

关于c# - BindToMoniker 打开一个新的 excel session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com