2017-06-28 29 views
4

私の検索ではVBAと似たようなものになりましたが、私はこの問題のためにPowerShellとは異なるアプローチをしています。PowerShellを使用してExcelファイルからコメントを読む

私はPowerShellを初めて使用しています。すべてのコメントをExcelファイルで読み込み、CSVファイルに保存したいと考えています。コメントを読む以外はすべて動作します。コメントはcomオブジェクトです。 comオブジェクトから実際のコメントを取得するにはどうすればよいですか?関連するコードのスニペットを次に示します。私はinvokememberでそれをすることができませんが、おそらく私はそれを間違っている。前もって感謝します。

ForEach ($File in (Get-ChildItem $folder -Include *.xls, *.xlsx, *.xlsm -Recurse)) 
{ 
    $sh=$document.Sheets.Item($i) 
    $comments = $sh.comments 
    foreach ($comment in $comments) 
    { 
     #[System.__ComObject] <--- Must get this value | Add-Content -file.csv 
    } 
} 

私はこれを達成するために他の方法も開いています。

答えて

1

Comment Objectには、情報を返すか更新するText methodがあります。

私はあなたが、著者からのコメント析出することができるように改行でさらに一歩とスプリットことをした:

foreach ($comment in $comments) { 
    $CommentText = $comment.text().split([environment]::newline) 
    [pscustomobject]@{ 
     'Author' = $CommentText[0] 
     'Text' = $CommentText[1] 
    } 
} 
+0

おかげで、しかし$ comment.text()がこのエラーの原因:[Systeので メソッドの呼び出しに失敗しましたm .__ ComObject]には 'text'という名前のメソッドが含まれていません。 – Rhamnetin

0

を私はこれを成し遂げるための方法の最大積載量があると確信しています...

import-module psexcel 
$fred = new-object OfficeOpenXml.ExcelPackage -ArgumentList "C:\Users\mccarthyd\Documents\Book1.xlsx" 

foreach ($worksheet in $fred.Workbook.Worksheets) { 
    $worksheet.comments 
} 

この記事を参照してください。powershell excel access without installing Excel

関連する問題