Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
C# 在C中模拟openexcel#_C#_Excel - Fatal编程技术网

C# 在C中模拟openexcel#

C# 在C中模拟openexcel#,c#,excel,C#,Excel,我有一个电子表格,可能正在调用BDDE.EXE。当我在Excel中打开此电子表格时,一切正常。我可以在公式以“=BDDE”开头的单元格中看到值。但是,当我使用C#打开同一个文件时,Excel首先显示一个警报 Remote data not accesible. To access this data Excel needs to start another application. ... Start application 'BDDE.EXE'? 然后,无论我单击什么-是或否,公式都会更新,

我有一个电子表格,可能正在调用BDDE.EXE。当我在Excel中打开此电子表格时,一切正常。我可以在公式以“=BDDE”开头的单元格中看到值。但是,当我使用C#打开同一个文件时,Excel首先显示一个警报

Remote data not accesible.
To access this data Excel needs to start another application. ...
Start application 'BDDE.EXE'?
然后,无论我单击什么-是或否,公式都会更新,以前重新计算的所有值都会丢失

然后,我试图通过将XlCalculation设置为手动来强制Excel不重新计算。Open在此更改后停止工作,并抛出COMException(没有其他信息)

我完全卡住了。我不能重新计算,因为那样会把所有的数字都搞乱。我无法将XLCalculation设置为手动,因为它会引发异常


非常感谢您的帮助。

Excel engine中有一个限制,即在设置
XlCalculation
属性之前需要打开工作簿。因此,最简单的解决方案是,在打开包含实际数据的文件之前,先将
XlCalculation
设置为所需模式。

Excel engine中有一个限制,它要求在设置
XlCalculation
属性之前打开工作簿。因此,最简单的解决方案是,在打开包含实际数据的文件之前,先将
XlCalculation
设置为所需模式。

如果不先打开工作簿,则无法设置计算属性。这听起来像第22条军规,但实际上这并不是你试图阻止的“计算”——你只是不想让它更新链接到外部源的单元格


Open方法采用可选的UpdateLinks参数。将该值设置为false,您就可以了。

如果不先打开工作簿,则无法设置计算属性。这听起来像第22条军规,但实际上这并不是你试图阻止的“计算”——你只是不想让它更新链接到外部源的单元格


Open方法采用可选的UpdateLinks参数。将此设置为false,您就可以了。

设置应用程序实例的
application.EnableEvents=false
有效吗?听起来它试图在工作簿上运行宏。\u open事件。设置应用程序实例的
application.EnableEvents=False
有效吗?听起来好像它试图在工作簿\u打开事件上运行宏。
System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT
: 0x800A03EC
at Microsoft.Office.Interop.Excel.ApplicationClass.set_Calculation(
XlCalculation RHS)