Man*_*yak 14 c# excel interop comexception
我在控制台应用程序中编写了一个C#代码来打开两个excel,并将数据从一个excel复制并粘贴到另一个excel.它工作正常,直到目标excel的可见性为真.但是我需要在执行时隐藏excel.所以我将可见性改为false.喜欢,
_destExcelApp = new Excel.ApplicationClass();
_destExcelApp.Visible = false;
Run Code Online (Sandbox Code Playgroud)
现在它显示了一个例外
呼叫被被叫方拒绝了.(来自HRESULT的异常:0x80010001(RPC_E_CALL_REJECTED))
怎么解决这个?
小智 20
当我将应用程序部署到没有完全激活和许可的Excel安装的计算机上时,我遇到了同样的错误.我花了好几个小时试图诊断问题.确保检查Office安装以确保它们完整.
Joo*_*ost 10
我在这个问题的帮助下解决了这个行为:
问题只是Workbook.Open
当我发出Worksheet.SaveAs
命令时还没有完成。所以有时,脚本会起作用,有时不会。
我只是在脚本中添加了一个暂停之后Workbook.Open
,它就起作用了。我继续寻找一个属性Ready
,它让我可以做我想做的事:
$excel = New-Object -ComObject "Excel.Application" -ea Stop
$wb = $excel.Workbooks.Open($workbook)
$sheet = $wb.Sheets("List")
while (-not $excel.Ready) {
sleep 1
}
$sheet.SaveAs($csvpath,6)
Run Code Online (Sandbox Code Playgroud)
所以就我而言,它与未激活或损坏的 Excel 安装无关。
确保 MS Word/Excel 没有显示需要响应的对话框。
我在导致失败的行上设置了一个断点,然后.Visible
在 PowerShell 中设置为 true,以找到以下内容:
$word.Visible = $true
Run Code Online (Sandbox Code Playgroud)
单击“是”并更新设置后,在我重新运行脚本化 COM 交互后,它们成功了。
我遇到了同样的错误,并且建议的许多解决方案对我不起作用.我有一个在Windows 8中运行的应用程序,我发现问题是Excel总是要求为"xlsx"扩展选择默认应用程序.执行应用程序时,没有出现窗口对话框,只显示错误.
我解决了问题转到控制面板>程序>默认程序并将Microsoft Office Excel 2016设置为xlsx文件的默认程序.
归档时间: |
|
查看次数: |
56020 次 |
最近记录: |