断开 Excel 工作簿中的所有链接

Break all links in Excel workbook

我想通过 VSTO 插件使用 c# 打破 excel 工作簿中的所有 link,并将公式转换为硬编码数据。

编辑更新: 代码遍历每个 link 正常,但 link 没有被破坏, breaklink 行执行但没有任何反应?

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

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

似乎 wb.Breaklink 函数不适用于某些公式 - 在我的例子中是 SUMIF。通过添加一个值为 1 的命名范围,然后添加到我的 sumif 公式 * namedrange 的末尾,我能够使 breaklink 函数工作。 Excel 然后识别外部 link 并有效地删除它