使用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文件当前是否可以由其他用户或进程打开和锁定?否,它在我的计算机上。你介意给我发一份可以用的剧本吗?