使用 PowerShell 和 Import-Excel 模块仅读取 Excel 文件中的标题

问题描述 投票:0回答:1

是否可以使用 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

非常感谢任何帮助!

excel powershell import-from-excel
1个回答
0
投票

您可以使用 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
© www.soinside.com 2019 - 2024. All rights reserved.