【问题标题】:Import-Excel only data without header in string - PowerShell仅导入 Excel 字符串中没有标题的数据 - PowerShell
【发布时间】:2020-06-30 22:16:58
【问题描述】:

我已经为 PowerShell by dfinke 安装了 Import-Excel 模块,它具有强大的功能,但我在标题方面遇到了一些麻烦。 我只想将文本插入到字符串数组中,但是,即使声明了 -NoHeader,它也会附带标题。根据文档,它的功能不是在变量中插入标头,但我正在寻找一种方法来做到这一点。到目前为止,我提供了 $xlsxArray | Format-Table -HideHeaders | Out-File C:\temp\info.txt 的新手解决方案,然后使用 .Trim() 删除空格,这样文件就不会被写入 @{P1=ContentofTheCell}。 有没有更好的方法来完成它? 到目前为止,谢谢。

【问题讨论】:

  • 列清单以及预期输出的示例会很有帮助。

标签: powershell powershell-module


【解决方案1】:

您没有提供有关所需输出的足够详细信息,但我会尽力提供指导。

Import-Excel 将返回对象。通常,列标题成为对象的属性名称。当您使用-NoHeader 时,属性名称会简单地命名为 P1、P2 等……对象的属性必须具有名称。如果您想要来自这些属性的数据,您可能需要进行不同的处理。您可以像访问任何其他对象集合一样访问属性:

$ExcelData = Import-Excel "C:\Temp\Some.xlsx"
$ExcelData.PropertyName

PropertyName 将是文件中的列标题。因此,假设我在该文件中有一个名为 Balance 的列,那么示例将类似于:

$ExcelData = Import-Excel "C:\Temp\Some.xlsx"
$ExcelData.balance

输出:

7254.74
4268.16
3051.32
64.77
323.22
146.62
14798.83

注意:这些都是非常简单的例子。显然事情会变得更复杂。

【讨论】:

  • 很抱歉缺少细节,但这正是我想要的。可以访问数据,然后可以将它们写入没有标题的 txt 文件。这比模块本身更像是一个 powershell 问题。谢谢,感谢您的时间和耐心。
  • 如果有人需要:我只用 = $S3 = (Import-Excel $sheet -WorksheetName 'S3' -StartColumn 1 -EndColumn 1 -StartRow 2 -NoHeader).P1 将信息直接插入到数组中
猜你喜欢
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 1970-01-01
相关资源
最近更新 更多