Открытие ODBC-подключения к Excel из C # - PullRequest
3 голосов
/ 21 мая 2011

Я хочу создать процесс, который открывает несколько файлов Excel и просто обновляет их.У меня есть код:

   excel.Visible = true;
    Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open("Testfile.xlsx");

    workbook.RefreshAll();
    workbook.Save();

Проблема заключается в том, что из-за того, что на этих рабочих листах соединения настроены для обновления в фоновом режиме, он пытается сохранить до завершения обновления.Я знаю, что мне нужно установить BackgroundQuery = false, но я не знаю, как получить доступ к уже существующим соединениям.Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Так что мне не удалось заставить этот конкретный код работать, но методом проб и ошибок я понял, что:

foreach (Microsoft.Office.Interop.Excel.WorkbookConnection i in workbook.Connections)
        { System.Console.WriteLine(i.Name);
        i.OLEDBConnection.BackgroundQuery = false;
        }

работает.

0 голосов
/ 21 мая 2011

Я не знаю много C, поэтому синтаксис может быть неправильным, но вам нужен объект worksheet.querytable:

Microsoft.Office.Interop.Excel.Worksheet ws = workbook.worksheets(1)
Microsoft.Office.Interop.Excel.Worksheet qt = ws.querytables(1)

ws.QueryTables(1).RefreshOnFileOpen = False
ws.QueryTables(1).BackgroundQuery = False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...