使用PowerShell从Excel文件读取注释
问题描述:
我的搜索只导致类似的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
}
}
我也打开其他方法来完成此操作。
答
每个Comment Object有一个Text method返回或更新信息。
我拿了更进了一步和分裂的新行,所以你可以从笔者分离出评论:
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
}
谢谢,但$ comment.text()导致此错误: 方法调用失败,因为[SYSTE m .__ ComObject]不包含名为'text'的方法。 – Rhamnetin