使用PowerShell从Excel文件读取注释

我的search只导致类似的VBA,但我有一个不同的方法,在PowerShell中这个问题。

我是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 } } 

我也打开其他方法来完成这一点。

每个注释对象都有一个返回或更新信息的Text方法 。

我更进了一步,在换行符上分开,这样就可以将作者的评论分离出来:

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

我确信有一大堆的方法来完成这个…

 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的访问没有安装Excel