在多个excel实例运行期间检索所有工作簿名称

时间:2016-03-28 15:40:48

标签: vb.net excel

这个问题基本上是关于循环所有excel实例中的所有工作簿!

1 个答案:

答案 0 :(得分:1)

您遇到的主要问题是您没有使用您遇到的任何流程。因此,你不会得到任何东西。在流程的循环内部,您创建了private static void SetAutofacContainer() { var builder = new ContainerBuilder(); var mainModules = BuildManager.GetReferencedAssemblies().Cast<Assembly>().Where(p => p.ManifestModule.Name.StartsWith("App.")).ToArray(); builder.RegisterControllers(mainModules); builder.RegisterAssemblyModules(mainModules); builder.RegisterFilterProvider(); builder.RegisterSource(new ViewRegistrationSource()); builder.RegisterModule(new EFModule()); builder.RegisterModule(new RepositoryModule()); builder.RegisterModule(new IdentityModule()); builder.RegisterModule(new ServiceModule()); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); } 的新实例,然后尝试遍历ExcelApplication。默认情况下,当您执行此操作时,此时只有 1 ,因此您只能获得 1 Workbooks以及为什么您只会看到 1 Workbook

解决方案(经过测试和测试)

您需要查看 Windows API 调用以获取所需内容。其中一些是:

  1. GetDesktopWindow()
  2. EnumChildWindows()
  3. GetClassName()
  4. EnumWindowsProc()
  5. AccessibleObjectFromWindow()

    Workbook