【问题标题】:How to get specific number of rows from Excel in powershell如何在PowerShell中从Excel中获取特定数量的行
【发布时间】:2017-08-25 15:38:39
【问题描述】:

我需要从 A 列获取前 35 行(包括空行)到一个变量。 我查看了互联网,但在任何地方都找不到答案。 $data = $worksheet.Range("A1:A35").text 仅返回单元格 A1。我尝试使用 Cell.item 等,但没有成功。有谁知道如何将单元格范围 A1:A35 从 excel 提取到变量中并将其保存到文本文件中?提前致谢。

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.workbooks.open("*PATH_TO_THE_FILE*.xlsx")
$worksheet = $workbook.sheets.item("MatrixFill") 
$data = $worksheet.Range("A1:A35").text
$excel.Quit()

【问题讨论】:

    标签: windows shell powershell active-directory windows-server-2012


    【解决方案1】:

    你试图访问的文本属性实际上是一个对象,所以你必须这样对待它。同样对于范围,您需要使用, 而不是:。下面会给你你需要的。当我测试它时,它对我有用。

    $excel = New-Object -ComObject Excel.Application
    $workbook = $excel.workbooks.open("*PATH_TO_THE_FILE*.xlsx")
    $worksheet = $workbook.sheets.item("MatrixFill") 
    $worksheet.Range("A1","A35") | select -expand text |out-file "textfilename.txt"
    $excel.Quit()
    

    $excel = New-Object -ComObject Excel.Application
    $workbook = $excel.workbooks.open("*PATH_TO_THE_FILE*.xlsx")
    $worksheet = $workbook.sheets.item("MatrixFill") 
    $data = $worksheet.Range("A1","A35") | select -expand text 
    $data | out-file "textfilename.txt"
    $excel.Quit()
    

    【讨论】:

    • 谢谢,就像一个魅力。但是我很确定我也尝试过(“A1”,“A35”)。我认为 -expand 文本是关键。早些时候我在没有它的情况下使用它,我只得到第一行。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多