Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PowerShell访问Excel_Excel_Powershell - Fatal编程技术网

使用PowerShell访问Excel

使用PowerShell访问Excel,excel,powershell,Excel,Powershell,我的代码中有这个脚本,但是,今天,它停止了工作。以下是我所拥有的: $Excel=new-object -comobject excel.application; $PathXLSX = "C:\Temp\TEMP.xlsx" $worksheetXLSX=$Excel.Workbooks.open($PathXLSX); 当我运行第三行时,出现以下错误: 不能对空值表达式调用方法。第1行字符:1 + $worksheetXML=$Excel.workBooks.open(

我的代码中有这个脚本,但是,今天,它停止了工作。以下是我所拥有的:

$Excel=new-object -comobject excel.application;
$PathXLSX = "C:\Temp\TEMP.xlsx"
$worksheetXLSX=$Excel.Workbooks.open($PathXLSX);
当我运行第三行时,出现以下错误:

不能对空值表达式调用方法。第1行字符:1

+ $worksheetXML=$Excel.workBooks.open($PathXML);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

如果$Excel对象为空,则会生成该错误。它存在吗? 尝试此操作以查看是否返回类型:

$Excel.GetType()
如果该值不为空,请尝试:

 $excel.GetType().fullname
应该返回:Microsoft.Office.Interop.Excel.ApplicationClass

由于您的代码与错误消息不匹配,我猜您有一些打字错误

$worksheetXLSX=$Excel.Workbooks.open($PathXLSX);
$worksheetXML=$Excel.workBooks.open($PathXML);

今天我终于让我的剧本开始工作了

我所做的就是停止使用Windows 10附带的Powershell 5.1,并安装了新版本7.1。当我从新版本调用脚本时,它运行良好


谢谢大家的反馈

如果您可以安装模块,这将帮助您使用@SantiagoSquarzon实现greatlyAgree,但具体问题是您为
.Open()
方法指定了错误或错误的变量
$PathXML
而不是
.XLSX
这样说错误,尽管我不知道为什么代码和错误不对齐。。。可能是某个地方的输入错误。当我开始编写脚本时,我确实使用了powershell gallery.com/packages/ImportExcel/7.1.0。至于打字错误,我认为这不是问题所在。几天前,代码运行得很好,但今天,相同的代码没有。仍在等待更多的想法尝试…当我运行$Excel.GetType()时,我得到了:$Excel.GetType().fullname,然后我运行了:$Excel.GetType().fullname,得到了以下响应:Microsoft.Office.Interop.Excel.ApplicationClass至于打字错误,我在脚本中没有看到。它成功运行了一周,然后停止了。迈克,你能发送一个脚本打开工作簿吗?克利夫顿,你的代码现在看起来不错。下面是我使用的:$Excel=newobject-ComObject Excel.Application$PathXLSX=“C:\Test\TEMP.xlsx”$worksheetXLSX=$Excel.Workbooks.open($PathXLSX)$工作表txlsx.Sheets.count;Excel文件当前是否可以由其他用户或进程打开和锁定?否,它在我的计算机上。你介意给我发一份可以用的剧本吗?