2017-01-16 3 views
0

Я хочу разбить все ссылки в книге excel с помощью C# через добавление VSTO и преобразовать формулы в жестко заданные данные.Перерыв всех ссылок в книге Excel

EDIT UPDATE: Код выполняет итерацию по каждой ссылке, но ссылка не нарушена, линия breaklink выполняется, но ничего не происходит?

Array links = (Array)((object)invoiceBook.LinkSources()); 
if (links != null) 
{ 

    foreach (string link in (Array)links) 
    { 
     invoiceBook.BreakLink(link, Excel.XlLinkType.xlLinkTypeExcelLinks); 
    } 
} 
+0

Вы пробовали 'Array links = (Array) invoiceBook.LinkSources (Excel.XlLinkType.xlLinkTypeExcelLinks)'? – GSerg

+0

Возможный дубликат [Что это за 'Object [*]' тип, который я получаю с помощью COM-взаимодействия?] (Http://stackoverflow.com/q/4539231/11683) – GSerg

+0

@GSerg - 1-й комментарий да, никакого влияния нет, ссылки в моей книге как xllinks. Второй комментарий (thx) - это помогло мне запустить итерацию - см. Обновление выше – lorgan

ответ

0

Кажется функция wb.Breaklink не работает с определенными формулами - в моем случае SUMIFS. Я смог заставить функцию breaklink работать, добавив именованный диапазон со значением 1, а затем добавив в конец моей формулы sumif * namedrange. Затем Excel реконструировал внешнюю ссылку и удалил ее эффективно