关键方法:mySheet.Application.ActiveWorkbook.LinkSources(XlLink.xlExcelLinks);
主要代碼如下
Application myExcel = null;//引用Excel Application类別
Workbook myBook = null;//引用活页簿类別
Worksheet mySheet = null;//引用工作表类別
Range myRange = null;//引用Range类別
string excelPath = "";
public ExcelModify(string filePath)
{
excelPath = filePath;
try
{
myExcel = new Application();//实例化Excel Application
myExcel.DisplayAlerts = false;//停用警告
myExcel.Visible = false; //Excel 不可见
// 3 時,打開excel沒有更新提示,詳情見Office官方說明
myBook = myExcel.Workbooks._Open(excelPath, "3", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// Microsoft.Office.Interop.Excel 引用的屬性 Embed interop type 改成false才可以
mySheet = (Worksheet)myBook.Worksheets[1];//Excel文件打开工作簿的第一个文件
}
catch (Exception ex)
{
this.Close();
throw ex;
}
}
///
遍歷外部鏈接的的單元格清單
public Dictionary
{
Application _appliation=null;
Workbook _workbook = null;
Object missing = System.Reflection.Missing.Value;
Dictionary
try
{
FileInfo xlsInfo = new FileInfo(xlsPath);
_appliation = new Application();
_appliation.DisplayAlerts = false;//停用警告
_appliation.Visible = false; //Excel 不可见
// 採用 3,和另存為,保證新文件數據是更新后的數據
_workbook = (Workbook)_appliation.Workbooks.Open(xlsPath, "3", missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing);
Worksheet mySheet = (Worksheet)_workbook.Worksheets[1]; //引用工作表类別
try
{
Range cs = mySheet.Cells.SpecialCells(XlCellType.xlCellTypeFormulas);
if (cs != null)
{
foreach (Range c in cs)
try
{
string col = convertToCharacter(c.Column) + (c.Row).ToString();
if (c.Formula.ToString() != "" && c.Formula.ToString().Contains("$"))
{
linksData.Add(col, c.Formula.ToString());
}
}
catch { }
}
}
catch
{
}
}
catch (Exception ex)
{
throw ex;
}
finally {
if (_workbook != null)
{
//關掉當前sheet
_workbook.Close(missing, missing, missing);
//關掉excel
_appliation.Workbooks.Close();
//退出程序
_appliation.Quit();
}
}
return linksData;
}
///