Shell 脚本 - 在现有的 xls 文件上设置自动过滤器

Shell script - set autofilter on a existing xls-file

我想通过 运行 来自命令行的 shell 脚本在现有 .xls 文件上设置过滤器。

powershell -c "$excelObj = New-Object -ComObject Excel.Application;$excelWorkBook = $excelObj.Workbooks.Open(\"C:\Users\Desktop\Papierkorb\Test\test2.xlsx\");$excelWorkSheet = $excelObj.WorkSheets.item(\"Sheet1\");$excelWorkSheet.activate();$headerRange = $excelWorkSheet.Range(\"A1\",\"A1\").AutoFilter() | Out-Null;$excelWorkBook.Save();$excelWorkBook.Close();$excelObj.Quit()"

我收到一条错误消息:

Unable to get the AutoFilter property of the Range class

在line:1char:231

我对 Range 进行了多次调整,但无法修复它。 感谢您的帮助,

无法在没有数据的范围内设置自动筛选。

尝试将一些文本放入 test2.xlsx 文件的单元格 "A1" 中(使用 Excel 或 PowerShell 有问题,如下例)。您甚至可以输入空字符串 ''.

以下适合我。

$excelObj = New-Object -ComObject Excel.Application;$excelWorkBook = $excelObj.Workbooks.Open("d:\temp\test2.xlsx");
$excelWorkSheet = $excelObj.WorkSheets.item("Sheet1");
$excelWorkSheet.activate();
$headerRange = $excelWorkSheet.Range("A5","A5") ;
$headerRange.Item(1,1) = 'Something'
$headerRange.AutoFilter() ;
#$headerRange.AutoFilter() | Out-Null;
$excelWorkBook.Save();
$excelWorkBook.Close();
$excelObj.Quit()