Распознавание моделей из TXT в Powershell - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь добавить TXT в XLSX на основе шаблонов. Если это соответствует, это должно добавить. Это работает, когда я явно определяю столбцы и элементы листа.

Это то, что я пробовал до сих пор. Я получаю следующую ошибку: HRESULT: 0x800A03E C. Что здесь не так?

$fileContent = @'
Node: ABC
Name: PC
Cluster: HS1
Node: XZZ
Name: CC
Cluster: HS2
Node: XYZ
Name: DD
Cluster: HS3
'@
$Testbestand = $fileContent.Split( [System.Environment]::NewLine,
          [System.StringSplitOptions]::RemoveEmptyEntries )

$linieIdLast = ''
$linieTemplate = [ordered]@{}
foreach ( $linie in $Testbestand ) {
    $linieId, $linieVal = $linie -split ":\s*",2
    if ( $linieId -in $linieTemplate.Keys ) {
        break
    } else {
        $linieIdLast = $linieId
        $linieTemplate.Add( $linieId, $Null )
    }
}

$linieComb = New-Object -TypeName PSCustomObject -Property $linieTemplate
$liniesAll = foreach ( $linie in $Testbestand ) {
    $linieId, $linieVal = $linie -split ":\s*",2
    $linieComb.$linieId = $linieVal.Trim()
    if ( $linieId -eq $linieIdLast ) {
        $linieComb
        $linieComb = New-Object -TypeName PSCustomObject -Property $linieTemplate
    }
}

$TargetFile = targetfile
$sheetName    = Sheet
$objExcel     = New-Object -ComObject Excel.Application
$workBook     = $objExcel.Workbooks.Open($TargetFile)
$sheet    = $workBook.sheets.item($sheetName)
$column = ($sheet.Columns.Find($linieKey))
$row = 33     

$liniesAll | ForEach-Object {
    foreach ( $linieKey in $linieTemplate.Keys ) 
    {
       $sheet.cells.item($row, $column).value = $_.$linieKey
       $row++
    }

}
$workBook.Save()
$objExcel.Quit() 

Я получаю ошибку:

Exception from HRESULT: 0x800A03EC
At line:48 char:8
+        $sheet.cells.item($row, $column).value = $_.$linieKey
+        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
...