无法设置活动的Excel工作表C#

我正在运行一些C#代码作为在我的SSIS包中运行的脚本组件的一部分。 我正在尝试打开一个Excel文件并在我的SSIS包的下一步中导入文件之前更改工作表的名称。 我正在尝试初始化“oSheet”的行上出现错误。

错误指定为:“错误1无法find编译dynamicexpression式所需的一种或多种types。是否缺less引用?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; } 

首先,添加对Microsoft Excel Interop DLL的引用。 您可以通过右键单击“解决scheme资源pipe理器”中的“参考” 然后点击添加引用。

AddingReference

点击“添加引用”窗口中的COM选项卡,然后向下滚动到您的Excel对象库版本(我select了15,但可以select其他版本)。 然后单击确定。 SelectingObjLib

现在,看起来你的使用语句应该这样做:

 using Excel = Microsoft.Office.Interop.Excel; 

另外,请注意,您的oXL构造函数现在可以

 oXL = new Excel.Application(); 

我在我的SSIS脚本任务中缺less对“Microsoft.CSharp.dll”的引用。 要在Visual Studio 2012中添加引用,请单击“项目”,“添加引用”,然后在“框架”选项卡中滚动以findMiscrosoft.CSharp,选中相应的框,然后单击“确定”。