2010-11-25 3 views
1

Я пытаюсь использовать SSIS, чтобы открыть файл Excel и обновить данные перед импортом данных в SQL Server. Мой пакет dtsx не работает в строке кода, который пытается открыть файл Excel.Невозможно использовать SSIS для открытия файла Excel

Код прост и взят от here.

Это код, я использую:

public void Main() 
{ 
    // TODO: Add your code here 
    Dts.TaskResult = (int)ScriptResults.Success; 

    Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 
    Microsoft.Office.Interop.Excel.Workbook wb; 

    wb = excel.Workbooks.Open(@"C:\Test.xlsx",0, false, null, null, null, true, null, null, null, null, null, null, null, null); 
    //wb.RefreshAll(); 
    //wb.Save(); 
    //wb.Close(null, null, null); 
    excel.Quit(); 

    System.Runtime.InteropServices.Marshal.ReleaseComObject(excel); 


} 

Сообщение об ошибке выглядит следующим образом:

Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC 
    at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad) 
    at ST_2177878595ee4288864728b04a894c16.csproj.ScriptMain.Main() 
    --- End of inner exception stack trace --- 
    at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) 
    at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 

я в настоящее время работает на моей тестовой машине со следующей конфигурацией:

  • Visual Studio 2008 BIDS
  • Office 2010
  • Office 2010 PIAs

Кто-нибудь есть какие-либо предложения относительно того, как получить эту работу?

+0

Что такое ОС? В частности, это 32-разрядная или 64-разрядная ОС? SSIS нужно сказать работать в 32-битном режиме, если вы на 64-битной машине и пытаетесь получить доступ к Excel. – 2010-11-25 15:54:17

ответ

Смежные вопросы