Я пишу консольное приложение ac # с .net 4.7.1.У меня есть несколько открытых книг Excel на моем компьютере.Я пытаюсь перечислить все открытые книги Excel на моем компьютере.
Я просмотрел несколько сообщений SO и собрал этот код, в котором должны быть перечислены все открытые книги Excel на моем компьютере, но при запуске кода ни одна из открытых книг Excel не появляется в списке.
using System;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;
namespace ExcelWorkbooks
{
class Program
{
static void Main(string[] args)
{
Application oXL = new Microsoft.Office.Interop.Excel.Application();
oXL = (Application)Marshal.GetActiveObject("Excel.Application");
Console.WriteLine("starting");
foreach (Microsoft.Office.Interop.Excel.Workbook blah in oXL.Workbooks)
{
Console.WriteLine(blah.Name.ToString());
}
Console.WriteLine("ending");
Console.ReadLine();
}
}
}
вывод должен быть
начиная с
здесь должен быть список открытых книг Excel
до
но вместо этого вот что выводится
начало
окончание
Если кто-то может указать мне правильное направление того, что нужно добавить/ вычел или изменил в моем коде, чтобы он перечислял все открытые книги Excel на моем компьютере, я был бы признателен.Заранее спасибо.
РЕДАКТИРОВАТЬ: я играл с этим и закрыл 2 открытые книги Excel.Затем я посмотрел в диспетчере задач и увидел, что даже после того, как я закрыл все книги Excel, все еще выполнялось около 10 процессов «EXCEL».Я закрыл все процессы «EXCEL», а затем снова открыл 2 книги Excel.Теперь в приведенном выше коде перечислены 2 открытые книги Excel.Итак, я полагаю, что вопрос несколько изменился: почему были запущены 10 процессов «EXCEL», когда у меня было только 2 открытых книги, и, что более важно, в будущем, как мне с этим бороться, так что если есть дополнительные процессы «EXCEL», я могу справиться с этимпоэтому он покажет открытые книги Excel.Спасибо.