使用c#删除excel中的公式链接

本文关键字:链接 删除 excel 使用 | 更新日期: 2023-09-27 18:13:03

我正在把工作表从book1复制到book2。工作表包含带有公式的单元格。在book2中的工作表'sheet1'上,单元格包含指向book1.sheet1 ='Y:'temp''[book1.xls]sheet1'!A1的链接

我的问题是我如何剥离Y:'temp''[book1.xls]sheet1和只有sheet1!A1 ?基本上把book2作为来源。

I have try:

        for (int i = 2; i <= numberOfSheets; i++)
        {
            Worksheet ws = (Worksheet)wbDestination.Sheets[i];
            Range r = (Range)ws.UsedRange;
            bool success = (bool)r.Replace(
                @"'Y:'temp'[book1.xls]sheet1'",
                "Sheet1",
                XlLookAt.xlWhole,
                XlSearchOrder.xlByRows,
                false, m, m, m);
        }

这不起作用,并得到excel无法找到任何匹配的消息。

使用c#删除excel中的公式链接

尝试逐字字符串:

@"'Y:'temp'[book1.xls]sheet1'"
不是

"'Y:'temp'[book1.xls]sheet1'"

在逐字字符串中,所有这些特殊字符都按字面意思解释。

我根据自己的需要解决了这个问题。我希望这能帮助到一些人。我使用了以下代码。

        Array links = wbOut.LinkSources(Microsoft.Office.Interop.Excel.XlLink.xlExcelLinks) as Array;
        if (links != null)
        {
            for (int i = 1; i <= links.Length; i++)
            {
                wbOut.ChangeLink(@"c:'temp'book1.xls", @"c:'temp'book2.xls", 
                       XlLinkType.xlLinkTypeExcelLinks);
            }
        }