Tag: com

DDE服务器窗口 – 应用程序错误

我有一个ac#应用程序,打开一个excel的COM实例,并通过oleDB从Access 2000数据库中转储一些数据到工作表上,然后释放excel对象,但是当我用标题栏closures程序后,我得到一个窗口: DDE Server Error: [applicationName.exe] – Application Error 我想我已经缩小了这个问题,在closures我的程序之前closuresexcel是一个问题。 想象这是我创build的COM对象的一个​​问题,我经历了我的代码,并试图find我存储Excel COM对象的每个地方,并确保它被释放之前设置为空。 我忽略了我没有存储的例如 excelSheet.GetRange("A1", "A1).Value2 = "Hello"; 我仍然收到错误,我想我已经释放了所有存储的COM对象,还有另一个原因,我可能仍然会得到这个错误?

Excel COM加载项对话框中断脚本

我已经用C ++编写了一个Excel COM加载项,用于使用VBA自动化Excel。 它包含一个自己的对话框,显示有关加载项的一些一般信息。 现在我在Excel中创build一个button,打开对话框。 使用退出键保留对话框将导致Excel消息,脚本被中断,而不是仅仅closures对话框。 我可以用下面的方法抑制中断信息: Application.EnableCancelKey = xlDisabled 但是,这似乎不是解决scheme,因为脚本不能再被打断了。 这里是我如何使用VBA打开对话框的一个例子: Private Sub ShowAboutDialog_Click() Dim oComAddIn As COMAddIn Set oComAddIn = Application.COMAddIns.Item("MyComAddIn.Example") oComAddIn.Connect = True Call oComAddIn.Object.ShowAboutDlg End Sub 我的猜测是这个问题是在对话框的消息处理程序中的某个地方: INT_PTR CALLBACK CAboutDialog::AboutDlg( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { … case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == […]

设置轴标题时发生COMException 0x800A03EC

当通过COM Interop将数据导出为Excel时,在尝试设置AxisTitle.Text属性时出现错误(代码0x800A03EC)。 这种情况只发生在一台使用Windows 7 x64 Professional和Excel 2003的特定计算机上。我已经在各种不同的PC(包括Win7 x64 Professional + Excel 2003)上尝试过,但不能在任何其他机器上重现该错误。 private static void setAxisTitle(_Chart tChart, string aszTimeUnit) { Axis tAxis = (Axis)tChart.Axes(XlAxisType.xlValue, XlAxisGroup.xlPrimary); try { tAxis.HasTitle = true; tAxis.AxisTitle.Text = "Messwert [um/m]"; tAxis = (Axis)tChart.Axes(XlAxisType.xlCategory, XlAxisGroup.xlPrimary); tAxis.HasTitle = true; tAxis.AxisTitle.Text = string.Format("Zeit [{0}]", aszTimeUnit); } catch (Exception aEx) { cLogger.ErrorFormat("error setting axis title […]

无法将“System .__ ComObject”types的COM对象转换为接口types“Excel._Workbook”

我正在将C#dotnet v1.1应用程序升级到3.5,并在第一次运行时遇到此错误。 这是一个运行愉快,生产多年的应用程序,并在我的桌面1.1,所以我假设的东西在Excel中的1.1和3.5之间的COM更改 完全例外: InvalidClassCastException was unhandled Unable to cast COM object of type 'System.__ComObject' to interface type 'Excel._Workbook'. 此操作失败,因为IIC“{000208DA-0000-0000-C000-000000000046}”接口的COM组件上的QueryInterface调用失败,原因是出现以下错误:没有此类接口支持(exception来自HRESULT:0x80004002(E_NOINTERFACE)) 。 码: Excel.ApplicationClass excel = new Excel.ApplicationClass(); excel.Application.Workbooks.Add(true); ((Excel.Range)excel.Cells[1,1]).EntireRow.Font.Bold = true; excel.Cells[1,1] = "col a"; excel.Cells[1,2] = "col b"; excel.Cells[1,3] = "col c"; // here loop and populate rows, nothing special just as above, all […]

错误1001将命令发送到应用程序时发生错误

COM Excel的AddIn,C#,VS2008偶尔当我安装/卸载我的AddIn时发生错误。 有时我看到错误1001指定的文件无法find 任何人都知道是什么原因造成的以及如何解决 谢谢 我使用Windows安装程序 http://msdn.microsoft.com/en-us/library/2w2fhwzz%28v=VS.90%29.aspx说如果使用[TARGETDIR],它应该像“[TARGETDIR] \”或“[TARGETDIR]” 。 我只是在CustomActionData中使用/ filepath =“[TARGETDIR] myinstallfile” 我不明白的是它几乎所有的时间,偶尔失败也即使我改变这个包括空格或反斜杠,我不知道是否修复问题,因为这个问题并没有发生每一次。 任何人都有经验? 谢谢

是否有一种简单的方法来使用Excel COM接口获取Range的“A1”样式坐标?

我试图让我的程序将数据转储到Excel电子表格。 目前,它只是将信息放入适当的单元格,根据需要在我的代码中计算任何计算的值。 我真正想要做的是写出计算出来的值是将Excel公式写出到包含计算值的单元格中。 这样,如果我将Excel文档提供给某人,他们可以更改其中的数据,计算的值将按预期更新。 问题是,我不知道如何获得Excel所期望的“A1”风格坐标。 基本上,我希望有这样的事情可用: calculatedCell.Value = string.Format("=SUM({0})", range.Coordinates); 我知道我可以得到该范围的行列索引,并使用那些我可以自己评估坐标,我只是希望有一个预先打包的方式做到这一点。

.NET / COMexception与IRTDUpdateEvent

我们build立了一个已被广泛使用多年的RTD服务器组件。 (它是使用VS 2008,.NET 3.5 Target Runtime构build的。)今天,用户报告了以下exception: System.InvalidCastException:无法将types为“System .__ ComObject”的COM对象转换为接口types“Microsoft.Office.Interop.Excel.IRTDUpdateEvent”。 此操作失败,因为IID为“{A43788C1-D91B-11D3-8F39-00C04F3651B8}”的接口的COM组件上的QueryInterface调用由于以下错误而失败:没有此类接口支持(exception来自HRESULT:0x80004002(E_NOINTERFACE)) 。 在Microsoft.Office.Interop.Excel.IRTDUpdateEvent.UpdateNotify()在EZomsRTDServer.RTDServer.NotifyExcel() 他昨天跑得很好。 这个问题似乎是由于他安装了一个新的应用程序,导致他安装了.NET 4更新。 (他已经安装了.NET 4,所以不知道此更新是什么。)用户通过回滚到昨天的还原点(仍然运行.NET 4)来解决问题。 但是我们需要了解在安装过程中会发生什么情况,导致COM兼容性问题。 (他没有碰到Excel或我们的RTD应用程序)。 是否有可能其中一个安装使用IRTDUpdateEvent Guid的其他COM类?

java excel交互

我正在尝试在java中创buildExcel文件。 现在,我使用Apache POI库来创build文件并将其保存到本地驱动器。 有没有办法启动Excel和填充数据,而不保存到硬盘驱动器?

Excel将string数据截断为255个符号。 如何在不更改registry的情况下读取整个string数据

正如您所知道的,如果您尝试读取它,Excel会截断string数据。 微软说,必须在registry中将TypeGuessRows设置为0。 但我不允许在那里改变(客户限制)。 我试图写这个连接string中的这个参数 @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties=""Excel 8.0;HDR=No;IMEX=1;TypeGuessRows=0""" 但它不起作用。 现在的问题是:如何在不改变TypeGuessRows参数的情况下从Excel文件读取整个string数据? 还有其他方法可以解决这个问题吗? 我可以通过互操作使用Excel …

在mac上自动化python中的excel

我使用pywin32通过COM接口使用python自动执行excel。 我想将我的脚本移植到mac。 这有什么发生的机会吗? 我意识到我不能在一个mac上使用COM,而xlutils的python模块将无法工作(因为我需要复制graphics等)。 还有什么我可以使用?