Tag: delphi

使用excel ole获取错误“Workbooks类的添加方法失败”

我想通过ole打开并刷新一个excel 2003电子表格。 但是我收到错误“添加方法的Workbooks类失败”没有进一步的信息。 该代码工作在unit testing,并在3台服务器上运行,但失败,在我们的networking服务器上的错误。 它是从本地系统帐户下运行的服务应用程序运行的。 所有服务器(2003 sp3)上都安装了相同版本的excel。 有问题的文件都存在,并在预期的位置。 电子表格中没有macros,但有数据库查询。 电子表格都可以打开。 调用代码是 if VarIsEmpty(XLApp) then begin XLApp := CreateOleObject('Excel.Application'); try XLApp.DisplayAlerts:= wdAlertsNone; except … end; XLApp.AutomationSecurity:= msoAutomationSecurityForceDisable; end; fullFileName:= ExpandReportFileName( partialFilename); if not FileExists(fullFileName) then raise Exception.Create('File not found: ' + fullFileName); XLAPP.Workbooks.Add(fullFileName); << fail here 任何想法,我还可以尝试什么?

退出后Excel Ole对象静止进程列表

我有这个代码: function XlsToStringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean; const xlCellTypeLastCell = $0000000B; var XLApp, Sheet: OLEVariant; RangeMatrix: Variant; x, y, k, r: Integer; begin Result:=False; //Cria Excel- OLE Object XLApp:=CreateOleObject('Excel.Application'); try XLApp.Visible:=False; XLApp.Workbooks.Open(AXLSFile); Sheet:=XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1]; Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; x:=XLApp.ActiveCell.Row; y:=XLApp.ActiveCell.Column; AGrid.RowCount:=x; AGrid.ColCount:=y; RangeMatrix:=XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value; k:=1; repeat for r:=1 to y do AGrid.Cells[(r – 1),(k – 1)]:=RangeMatrix[K, R]; […]

在Delphi 5中embeddedExcel文件

我想embedded一个Excel文件到我的Delphi 5应用程序,所以我可以避免我的用户只是删除该文件意外。 使用embedded文件,我使用Save对话框在磁盘上创build它,然后用Excel := CreateOleObject('Excel.Application');打开它Excel := CreateOleObject('Excel.Application'); 方法。 我已经看到如何加载资源,使用THandles的例子,但我似乎并没有得到它与Excel.WorkBooks.Open(EmbeddedExcelFile); 。 你有没有做过这样的事情? 你会怎么做? 谢谢!

在Delphi中为Excel编写一个DLL

我正在使用Turbo Delphi 2006。 该DLL将作为VBA / DLL组合的一部分从Excel内部调用。 问题的第一部分是试图找出如何传递给DLL当前Excel会话的引用。 我见过的大多数其他代码是,它启动了一个独立的Excel实例,与您所在的实例不同。 我见过一些创buildIDispatch实例的C ++代码,然后将某些东西传递给IDispatch对象的一个​​方法,但不知道多lessC ++。 有任何想法吗?

如何使用ADO查询从MS Excel读取特定单元格的值?

我正尝试从MS Excel工作表中的特定单元格中提取数据。 Select [A1] from [Sheet1$] 不起作用。 如何使用ADO查询从MS Excel读取特定单元格的值? 这是我的连接string,如果它从任何帮助。 Provider=Microsoft.ACE.OLEDB.12.0; User ID=Admin;Data Source=c:\clients.xlsx; Mode=Share Deny None; Extended Properties="Excel 12.0 Xml; HDR=yes"; Jet OLEDB:System database=""; Jet OLEDB:Registry Path=""; Jet OLEDB:Database Password=""; Jet OLEDB:Engine Type=37; Jet OLEDB:Database Locking Mode=0; Jet OLEDB:Global Partial Bulk Ops=2; Jet OLEDB:Global Bulk Transactions=1; Jet OLEDB:New Database Password=""; Jet OLEDB:Create System Database=False; […]

ExportAsFixedFormat

为什么下面的代码返回无效的参数错误? 它在Delphi中的等价性执行得很好。 C ++ Builder: ActiveWorkSheet.OleProcedure("ExportAsFixedFormat", 0, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); delphi: oSheet.ExportAsFixedFormat(0, // xlTypePDF is constant 0 EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, // set to True to open Acrobat EmptyParam);

狂暴报告Excel文件渲染对象?

我注意到Rave为Delphi 7(默认版本)提供了PDF,HTML,RTF和TXT渲染对象。 有谁知道一个地方下载一个免费或开源渲染对象的Excel或其他文件types? (虽然我对Excel特别感兴趣) 谢谢

XE2中COM是否被破解,我该如何解决它?

更新: XE2更新2修复了下面描述的错误。 下面的程序,从真正的程序截断,失败,在XE2例外。 这是从2010年开始的一个回归。我没有XE来testing,但是我期望程序能够在XE上正常工作(感谢Primož确认代码在XE上正常运行)。 program COMbug; {$APPTYPE CONSOLE} uses SysUtils, Variants, Windows, Excel2000; var Excel: TExcelApplication; Book: ExcelWorkbook; Sheet: ExcelWorksheet; UsedRange: ExcelRange; Row, Col: Integer; v: Variant; begin Excel := TExcelApplication.Create(nil); try Excel.Visible[LOCALE_USER_DEFAULT] := True; Book := Excel.Workbooks.Add(EmptyParam, LOCALE_USER_DEFAULT) as ExcelWorkbook; Sheet := Book.Worksheets.Add(EmptyParam, EmptyParam, 1, EmptyParam, LOCALE_USER_DEFAULT) as ExcelWorksheet; Sheet.Cells.Item[1,1].Value := 1.0; Sheet.Cells.Item[2,2].Value := […]

在Excel工作表中写阿拉伯文?

我想用Delphi写一个Excel表格中的阿拉伯文字。 当我在纸上写字时,我就得到了这样的东西。 另外,如何从Delphi代码中更改Excel数据types?

用Delphi AdoTable / Grid编辑/更新Excel表格

我正在尝试使用TADOTable和Grid组件来读写XE5-Delphi中的Excel 2000文件。 阅读正在工作,但当试图改变一些领域收到这样的: “用于更新或刷新的关键列信息不足” 尝试更改游标types,lockingtypes,我在论坛中find的任何内容,都无法正常工作。 大多数的build议是定义一个索引键,但这是Excel,所以都是没用的。 我的代码是: Begin MastTable.FormMast.ADOTableMast.DisableControls; MastTable.FormMast.ADOTableMast.Edit; for i := 0 to SrcList.Items.Count-1 do begin MastTable.FormMast.ADOTableMast.First; while not MastTable.FormMast.ADOTableMast.EOF do begin; MastTable.FormMast.ADOTableMast.Edit; if MastTable.FormMast.ADOTableMast.FieldByName('FieldNames').Value = SrcList.Items[i] then MastTable.FormMast.ADOTableMast.FieldByName('FieldNames').Value:='Yes' else MastTable.FormMast.ADOTableMast.FieldByName('FieldNames').Value:=''; MastTable.FormMast.ADOTableMast.Post; MastTable.FormMast.ADOTableMast.Next; end; end; MastTable.FormMast.ADOTableMast.Refresh; MastTable.FormMast.ADOTableMast.EnableControls; End; 我的连接string是: Provider = Microsoft.ACE.OLEDB.12.0; User ID = Admin; Data Source = N:\ DP-DATA \ Lee_County […]