Используя Excel Interop, я пытаюсь перебрать все QueryTables во всех рабочих листах и удалить их. У меня есть этот код, который работает:
> // loop through each Worksheet
> for (int i = 1; i <= workbook.Sheets.Count; i++)
> {
> sheet = (Worksheet)workbook.Sheets.get_Item(i);
>
> // loop through each queryTable on each Worksheet
> int queryTableCount = sheet.QueryTables.Count;
> for (int j = 1; j <= queryTableCount; j++) {
> sheet.QueryTables.Item(1).Delete();
> }
> }
Это прекрасно работает для некоторых подключений / файлов данных, но для других «QueryTables.Count» возвращает ноль - хотя я знаю, что - это подключения. Соединения были созданы в Excel 2007 через вкладку Данные -> Из других источников -> Из Microsoft Query. Кто-нибудь сталкивался с этой проблемой?