我正在将工作表从book1复制到book2。该工作表包含具有公式的单元格。在工作表' sheet1'在book2中,单元格包含一个返回book1.sheet1 ='Y:\temp\\[book1.xls]sheet1'!A1
我的问题是如何删除Y:\temp\\[book1.xls]sheet1
并且只有sheet1!A1
?基本上将book2作为源。
我试过了:
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无法找到任何匹配的消息。
答案 0 :(得分:0)
尝试逐字字符串:
@"'Y:\temp\[book1.xls]sheet1'"
而不是
"'Y:\temp\[book1.xls]sheet1'"
在逐字字符串中,所有这些特殊字符都按字面解释。
答案 1 :(得分:0)
我根据自己的需要解决了这个问题。我希望它可以帮助别人。我使用了以下代码。
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);
}
}