我正在運行一些C#代碼作爲在我的SSIS包中運行的腳本組件的一部分。我試圖在我的SSIS包的下一步中導入文件之前打開Excel文件並更改工作表的名稱。我正在嘗試初始化「oSheet」的行上出現錯誤。無法設置活動的Excel工作表C#
錯誤指定:編譯一個動態表達所需「錯誤1種的一個或多個類型不能被發現是否缺少參考C:?\ TEMP \ VSTA \ SSIS_ST110 \ VstaTP9LtckEMUWOXYp4Zy3YpQ \ Vstau3xOw__Ey1kaOxXFoq0ff8g \ ScriptMain.cs 107 26 ST_005c649f34584ed6873a7fde862ab2c9 「
我沒有使用C#一段時間,並希望有人能指出我在正確的方向。提前致謝!
代碼:
public void Main()
{
String s = (String)Dts.Variables["FilePath"].Value;
String FileName = s.Substring(45,s.Length - 45); //45 = hardcoded value for known index of the start of the file name
MessageBox.Show(FileName);
Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
Excel.Range oRng;
try
{
oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = false;
oWB = (Excel.Workbook)oXL.Workbooks.Open(s);
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
//oSheet = (Excel._Worksheet)oXL.ActiveSheet;
//oSheet = (Excel._Worksheet)oWB.Worksheets.Item(0);
//oSheet = (Excel._Worksheet)oXL.Worksheets[FileName];
oSheet.Name = "NLTWNH";
oWB.Close(s);
}
catch (Exception ex)
{
//do nothing
}
Dts.TaskResult = (int)ScriptResults.Success;
}
你可以顯示你的使用語句。你也編譯爲64位? – LochnessLAM 2015-01-27 04:16:13
不久前,我也遇到過'ActiveSheet'問題,但不記得是否有相同的錯誤。我通過添加對** Microsoft.CSharp.dll **的引用來修復它。我希望這有幫助。 – Darka 2015-01-27 07:41:06
感謝Darka,添加對Microsoft.CSharp.dll的引用照顧它。謝謝你的幫助! – 2015-01-28 15:54:54