是否可以使用 PowerShell 和
Import-Excel
模块仅读取 Excel 文件的标题?
我有一个包含多个工作表的 Excel 文件。其中之一仅包含标题,现在包含数据行。
经过一些更新后,我需要将结果写入新的 Excel 文件。
其他工作表一切正常,但对于没有数据的工作表,我无法将标题复制到新文件。
$xlsx = Import-Excel 'D:\data.xlsx' -WorksheetName 'events'
Write-Host $xlsx
> WARNING: Worksheet 'events' in workbook 'D:\data.xlsx' contains no data in the rows after top row '1'
$prop = [Collections.Generic.List[Object]]$xlsx[0].psobject.properties.Name
Write-Host $prop
> Cannot index into a null array. At D:\Untitled1.ps1:4 char:1
> + $prop = [Collections.Generic.List[Object]]$xlsx[0].psobject.propertie ...
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> + CategoryInfo : InvalidOperation: (:) [], RuntimeException
> + FullyQualifiedErrorId : NullArray
非常感谢任何帮助!
您可以使用 2 个选项来获取没有数据的电子表格的标题:
-NoHeader
开关,那么您需要定位 .Value
属性而不是 .Name
属性:$xlsx = Import-Excel 'D:\data.xlsx' -WorksheetName 'events' -NoHeader
$headers = $xlsx[0].PSObject.Properties.Value
Open-ExcelPackage
并获取每个Cell的.Text
属性的值:$pkg = Open-ExcelPackage 'D:\data.xlsx'
$headers = $pkg.Workbook.Worksheets['events'].Cells | ForEach-Object Text
Close-ExcelPackage $pkg