0

我需要从列A中获得前35行(包括空行)到变量。 我在网上查找,但我无法找到答案的任何地方。 $ data = $ worksheet.Range(“A1:A35”)。text仅返回单元格A1。我尝试过使用Cell.item等,但没有成功。有谁知道如何从Excel中提取细胞范围A1:A35到变量并将其保存到文本文件?提前致谢。如何在PowerShell中从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() 

回答

0

您尝试访问的文本属性实际上是一个对象,因此您必须将其作为对象来对待它。此外,对于范围,您将需要使用,而不是:。下面会给你你需要的。当我测试它时它对我有效。

$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() 
+0

谢谢,工程就像一个魅力。但我很确定我也尝试过(“A1”,“A35”)。我认为-expand文本是关键。早些时候我没有使用它,我只有第一排。 非常感谢! –