Присвоение многомерного массива Powershell диапазону рабочей книги Excel завершается с ошибкой приведения - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь импортировать CSV-файл в Excel с помощью Powershell.Сбой присвоения $ Range.Value2 с ошибкой приведения.

Я свел проблему к простейшему примеру.

$excel = New-Object -ComObject Excel.Application
$excel.visible = $true
$workbook = $excel.Workbooks.Add()
$range = $workbook.ActiveSheet.Range("a1","b2")
$array = New-Object 'object[,]' 2,2
$array[0,0] = 'Cell1'
$array[0,1] = 'Cell2'
$array[1,1] = 'Cell3'
$array[1,0] = 'Cell4'
$range.Value2 = $array

Вместо вставки 'CellX' в a1, b1,a2, b2, я получаю -

PS C: \ cygwin64 \ home \ zkgf4jl \ mfParser> C: \ cygwin64 \ home \ zkgf4jl \ mfParser \ Untitled2.ps1 Невозможно привести объект типа 'System.Object[,] 'для ввода' System.Management.Automation.PSReference`1 [System.Management.Automation.LanguagePrimitives + Null] '.В C: \ cygwin64 \ home \ zkgf4jl \ mfParser \ Untitled2.ps1: 10 char: 1 + $ range.Value2 = $ array + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: OperationStopped: (:) [], InvalidCastException + FullyQualifiedErrorId: System.InvalidCastException

1 Ответ

0 голосов
/ 11 июня 2019

Я решил эту проблему, изменив присвоение на $ range.Value вместо Value2. Эта общая ошибка, HRESULT: 0x800A03EC, снова и снова появляется в работающих приложениях PowerShell Excel. Повторяющаяся тема - она ​​работала вчера, затем было применено обновление Windows, и мой рабочий код начинает обрабатывать исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...