2016-07-29 7 views
0

나는 다음과 같은 간단한 코드가 작동을 얻기 위해 노력 해왔다를 사용하여 SSIS에서 시트를 엑셀,하지만 올리고 using (var excelPackage = new ExcelPackage(finfo))이름 바꾸기는 EPPlus

 string filepath = Convert.ToString(Dts.Variables["User::FileFullPath"].Value); 


     if (File.Exists(filepath)) 
     { 
      FileInfo finfo = new FileInfo(filepath); 

      MessageBox.Show(filepath); 
      try 
      { 
       using (var excelPackage = new ExcelPackage(finfo)) 
       { 
        ExcelWorksheet ws = excelPackage.Workbook.Worksheets[0]; 
        ws.Name = "Sheet1"; 
        excelPackage.Save(); 
       } 
      } 
      catch(Exception ex) 
      { 
       MessageBox.Show(ex.StackTrace, "Error", MessageBoxButtons.OK); 
       Dts.Events.FireError(1, "Check File Status", ex.StackTrace, "", 0); 
      } 
      Dts.TaskResult = (int)ScriptResults.Success; 
     } 
     else 
     { 
      Dts.TaskResult = (int)ScriptResults.Failure; 
     } 

에 대한 예외 일부 줄을 주석 처리 할 때 오류가 using (var excelPackage = new ExcelPackage(finfo)) 줄에 있다고 생각했습니다. 누군가 내가 여기서 잘못하고있는 것을 말할 수 있습니까? 더 자세한 예외를 더 잘 얻는 방법은 있습니까?

답변

0

SSIS에서도 동일한 문제가있었습니다. 다음 방법 중 하나를 사용하여 GAC에 추가 할 때까지

당신은 당신의 코드에 전역 어셈블리 캐시 (GAC)에 EPPlus.dll 어셈블리를 사용할 수없는

에 EPPlus.dll 어셈블리를 추가해야합니다.

GAC에 DLL을 추가하는 방법은이 링크를 참조하십시오. http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/105432/

+0

나는 개인적으로 GAC 관리자를 사용했다 : https://gacmanager.codeplex.com/ 그리고 그것은 나에게 아주 잘 돌아갔다. – gaganKapula