none
PowerShell, Excel и Windows 8 - перестали работать вызовы RRS feed

  • Вопрос

  • в Windows 7 x64 вот такой код работал:

    #-------------меняем региональные настройки---------------
    $ciBK = [System.Threading.Thread]::CurrentThread.CurrentCulture
    $ciUS = [System.Globalization.CultureInfo]'en-US'
    [System.Threading.Thread]::CurrentThread.CurrentCulture = $ciUS
    
    #---открываем файл ---------------
    
    $file = "26062013.xls"   #путь к файлу меняем, если надо
    $xl = New-Object -COM Excel.Application
    $xl.Visible = $False
    $bk = $xl.Workbooks.PSBase.GetType().InvokeMember('Open',[Reflection.BindingFlags]::InvokeMethod,$null,$xl.Workbooks,"$file",$ciUS)
    
    В Windows 8 x64 и Офис 2013 x64 возникает ошибка
    Исключение при вызове "InvokeMember" с "6" аргументами: "Объект не соответствует конечному типу."

    здесь описана такая же ситуация

    http://social.technet.microsoft.com/Forums/office/en-US/e73f1c19-be5f-4bca-83f2-a42c2e6fb386/windows-8-powershell-and-ms-excel-2010  , но решения нет         

    13 декабря 2013 г. 3:17

Ответы

Все ответы

  • Попробовать:

    1) $xl.Workbooks.Open($file)

    2) Запустить PowerShell V2 - powershell -version 2 и выполнить скрипт

    • Помечено в качестве ответа Dmitry.M.K 13 декабря 2013 г. 7:45
    13 декабря 2013 г. 5:00
    Отвечающий
  • Попробовать:

    1) $xl.Workbooks.Open($file)

    2) Запустить PowerShell V2 - powershell -version 2 и выполнить скрипт

    и 1 и 2 вариант рабочие.

    В варианте 1 проблем с региональными настройками не будет?

    13 декабря 2013 г. 7:47