Я запускаю некоторый код C# как часть компонента сценария, работающего в моем пакете SSIS. Я пытаюсь открыть файл Excel и изменить имя листа перед импортом файла на следующем шаге моего пакета SSIS. Я получаю сообщение об ошибке в строке, где я пытаюсь инициализировать «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
У меня также были проблемы с «ActiveSheet» не так давно, но не помню, была ли такая же ошибка. Я исправил это, добавив ссылку на ** Microsoft.CSharp.dll **. Надеюсь, это поможет. – Darka
Спасибо Darka, добавив ссылку на Microsoft.CSharp.dll, позаботился об этом. Спасибо за вашу помощь! –