Я загружаю таблицу Excel с сводными таблицами и диаграммами в ней в элемент управления веб-браузера, используя C #.Электронные таблицы имеют несколько строк подключения, все они указывают на базу данных разработки.Я хотел бы иметь возможность изменить строки подключения на те, которые были предоставлены пользователем при запуске моего приложения.
Мне уже удалось заставить это работать, когда электронная таблица была создана программно и SourceTypeиз сводных кэшей установлено значение « Внешний ».Однако при загрузке электронной таблицы, созданной в Excel, тип источника устанавливается на « База данных », и при обращении к свойству « Соединение » создаются исключения.
Есть ли способ изменить свойство SourceType (только для чтения) или строку подключения такой электронной таблицы?
Вот пример моего кода, основанный на решениипохожая проблема .
EXCEL.Worksheet sheet = (EXCEL.Worksheet)_application.ActiveSheet;
foreach (EXCEL.PivotTable table in sheet.PivotTables())
{
table.PivotCache().Connection = ConnectionString;
table.RefreshTable();
}
Я также пробовал это
var workBooks = _application.Workbooks.Cast<EXCEL.Workbook>();
var pivotCaches = workBooks.SelectMany(arg => GetPivotCaches(arg));
foreach (EXCEL.PivotCache cache in pivotCaches)
{
cache.Connection = ConnectionString;
}
В обоих случаях я получаю исключение System.Runtime.InteropServices.COME, как только я получаю доступ к Connection свойство сводного кэша.Есть идеи?