Windows 使用powershell写入excel时防止覆盖弹出窗口
我有一堆csv文件,从中我将数据写入现有excel文件的特定工作表。我有下面的代码,它在循环CSV文件并将数据写入现有工作表时工作 $CSVs=“rpt.test1”, “rpt.test2” foreach($csv中的csv) { $csv_name=$csv echo“Windows 使用powershell写入excel时防止覆盖弹出窗口,windows,excel,csv,powershell,dialog,Windows,Excel,Csv,Powershell,Dialog,我有一堆csv文件,从中我将数据写入现有excel文件的特定工作表。我有下面的代码,它在循环CSV文件并将数据写入现有工作表时工作 $CSVs=“rpt.test1”, “rpt.test2” foreach($csv中的csv) { $csv_name=$csv echo“n----$sav\u name----n” 由于它是一个现有的excel工作簿,因此每当文件被重写时,它都会弹出一个窗口。拥有超过15个CSV,每次单击“是”都会让人恼火 我试过了 $excel.DisplayAlerts
n----$sav\u name----
n”
由于它是一个现有的excel工作簿,因此每当文件被重写时,它都会弹出一个窗口。拥有超过15个CSV,每次单击“是”都会让人恼火
我试过了
$excel.DisplayAlerts = FALSE
$excel.CheckCompatibility = $False
我已经试过了
$excel.DisplayAlerts = FALSE
$excel.CheckCompatibility = $False
还有互联网上几乎所有可用的东西。我仍在学习powershell,并在绞尽脑汁试图阻止这种情况。非常感谢您提供的任何帮助。
对我有效。在SaveAs
调用之前使用display alerts语句:
$excel.DisplayAlerts = $false;
$excel.ActiveWorkbook.SaveAs($xlsFile);
如果您无法阻止“覆盖”弹出窗口,那么在执行SaveAs?If(测试路径$Path){Remove Item$Path}(从谷歌那里获取随机答案…)之前,您能否删除该文件我无法删除并重新创建文件,因为工作表1中有公式,而我只在工作表1中写入。这是我一直面临的最大问题。我一定是误解了你的问题-假设你在倒数第二个“SaveAs”中出错行。如果那里有一个文件,您要覆盖它,为什么不能删除它?为什么要使用
SaveAs
而不是Save
(因为您要将文件保存到打开它的路径和名称)?@TimWilliams-这是我尝试的第一件事,脚本似乎无法识别保存并抛出错误。我找到了一个解决方法。我将模板保存在一个文件夹中,将数据复制到其中并保存在另一个文件夹中。而不是这样做,$Workbook.SaveAs($Path,51)
我这样做了,它成功了。$Workbook.SaveAs($OutPath,51)
请解释它是如何/为什么对给定的问题有效的?