Tag: 办公自动化

问题定位窗口使用SetParent()时

我想通过PInvoke使用SetParent API将childForm设置为主Excel窗口的子项: Form childForm = new MyForm(); IntPtr excelHandle = (IntPtr) excelApplication.Hwnd; SetParent(childForm.Handle, excelHandle); childForm.StartPosition = FormStartPosition.Manual; childForm.Left = 0; childForm.Top = 0; 正如你上面所看到的,我的意图也是把孩子放在Excel窗口的左上angular。 但是,由于某种原因, childForm总是会在某个奇怪的位置结束。 我做错了什么?

自动化应用程序退出时,如何避免Excel显示“保存”对话框

我有一个用Delphi编写的excel自动化应用程序,它访问一个给定的excel工作簿,并提取应用一些内部逻辑表单的不同数据。 它在Excel 2003和2007上已经运行了很多年。 最近有些用户使用Excel 2010.在这些用户上,当我的应用程序退出时,Excel显示一个对话框,要求用户保存未修改的工作表。 该消息说了一些有关公式的版本将被保存在一个新的2010年格式。 对不起,我没有确切的词汇,因为它不是英文办公软件包。 我的应用程序如何防止Excel 2010显示这个恼人的和无用的框? 大多数用户使用Excel 2007,所以我的应用程序需要处理的大部分文件(无论运行我的应用程序的用户的实际Excel版本)是否都是这种格式,并且将来会这样,因此将所有文件不是一个选项。

运行delphi客户端自动化程序后为什么excel.exe仍然被加载的原因?

我编写了一个Delphi程序,将一个.XLS文件的几个不同电子表格中的数据提取并合并到一个文本文件中供以后处理。 这是一个Delphi 7 控制台程序。 最相关的代码片段的摘录会告诉你,显然,我的程序是相当不错的performance,或至less它需要。 uses … ActiveX, ComObj … ; procedure Fatal(s:string); … Halt(1); var ExcelApp:Variant; (* global var *) begin (* main program block *) coInitialize(nil); ExcelApp:=CreateOleObject('Excel.Application'); try ExcelApp.Visible:=False; ExcelApp.WorkBooks.Open(ExcelFileName); … XLSSheet := ExcelApp.Worksheets[ExcelSheetName]; … try XLSRange := XLSSheet.Range[ExcelRangeName]; except Fatal('Range "'+ExcelRangeName+'" not found'); end; if VarIsNull(XLSRange) then Fatal('Range '+ExcelRangeName+' not found'); for […]