Tag: delphi

使用ADODataset组件打开Excel电子表格

我正在使用ADOdataset组件查看Delphi表单上的Excel电子表格。 该组件要求将CommandText属性设置为打开的工作簿中电子表格的名称。 如何设置此属性以打开工作簿中的第一个电子表格而不考虑名称? procedure TForm1.BitBtn1Click(Sender: TObject); var XLSFile, CStr : string; begin if OpenDialog1.Execute() then begin XLSFile := OpenDialog1.FileName; CStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +XLSFile+'; Extended Properties=Excel 8.0;Persist Security Info=False'; ADODataSet1.Active := False; ADODataSet1.ConnectionString := Cstr; ADODataSet1.CommandText := ??????????; ADODataSet1.Active := True; end; end;

delphiXE2的Excel列自动调整

我将一些较旧的代码从Office 2000迁移到Office 2010,并遇到了将Excel自动调整列的问题 正在工作的代码如下所示: for x := 1 to LV.Columns.Count do XLApp.Columns[x].EntireColumn.AutoFit; XLApp是一个TExcelApplication组件 当我看VBA的等效代码应该是 Columns("A:A").EntireColumn.AutoFit 我很容易改变我的代码,使范围匹配的VBA,但这似乎并不是问题。 编译器返回的错误是 Class does not have a default property 并且[x]突出显示。 代码完成不提供任何方式,我可以看到select一个单独的列,作为一个整数或范围。 有什么build议么?

使用ADO和Delphi从XLS文件导入数据

我想通过使用TADOConnection和TADOTable从Excel文件(xls)导入一些数据。 我连接到没有问题的文件,但是当我打开TADOTable一些字段有ftFloat数据types,因为它们在Excel文件中的值是数字,但它们的值不是一个数字! 我希望TADOTable所有字段(Excel文件的列)具有ftString数据types。 我在Excel文件中将Text的types设置为Text但没有任何更改受到影响! 我怎样才能做到这一点?

delphi ole excel容器,保存文件

Delphi中这个c ++问题的语法是什么? 在使用oleContainer之后,并试图执行SaveDocumentAs,这些都不起作用。 我认为这可能是一个很好的select。 更新:谢谢你的翻译,但是excel文件在调用之后会变得很糟糕 var ExcelOle: TOleContainer; begin ExcelOLE.CreateObjectFromFile(FileName, False); ExcelOle.OleObject.application.workbooks[1].save; end;

Excel的RefEdit控件可以在VBA之外使用

作为VBA的一部分的RefEdit控件是一个小错误,但是当你希望人们指定一个或多个单元格范围(即Excel.Range对象)时,它是很好的select。 主要的问题是你只能在VBA UserForm上使用RefEdit控件( 微软声明这一点 ,我的testing也证实了这一点)。 我使用Delphi制作Excel加载项,并且正在寻找RefEdit控件的替代方法 。 Excel.Application.InputBox Type:=8是select单元格范围的一种替代方法,但是当您需要人们在单个表单上select多个单元格范围时,它不是非常用户友好。 我现在最好的select是从我的Delphi插件中调用一个VBA表单,但这并不理想。 所以理想情况下,我可以使用RefEdit的替代scheme – 我可以在Delphi上使用。 如果有的话,不容易find(我一直在search很难,而且我还没有find一个适用于Delphi,VB6或.NET的RefEdit替代品)。 如果没有一个替代品,我可能会尝试把自己的替代品拼凑在一起,但是我怀疑如果不是不可能做出和RefEdit一样的作品,那将是困难的。 RefEdit可以让你“select”单元格而不用实际select单元格:它使用你select的单元格周围的ant,而不是突出显示它们并改变Excel.Application.Selection 。 我不知道通过VBA,Delphi或其他方式来操作Excel对象模型的方法。 任何提示,技巧,黑客,或者,如果我真的很幸运,指引下载RefEditreplace将是最受欢迎的。

以编程方式将CSV文件加载到Excel工作表(Delphi 7)

我有大量的数据插入到现有Excel工作簿的工作表中。 Excel工作簿将包含其他工作表,其中包含计算和数据透视表。 数据可能有多达60,000行和30多列。 此解决scheme必须适用于Excel 2003和Excel 2007。 使用Excel OLE对象太慢,所以我们试图从CSV文件中加载数据。 我们想出了一个方法来加载数据,把数据放到剪贴板上,然后粘贴到工作表中。 我觉得这是一个相当混乱。 是否有另一种编程方式将CSV文件加载到工作表中的方法? 或者也许完全不同的解决scheme? 更新:在我们完全调查答案之前,我们遇到了另一个任务。 我们应该能够在几个星期内回到这个问题。 当我们回到这个任务时,我一定会再次更新。 感谢所有迄今为止的答案!

Excel 2010自动化常量不能在Delphi XE7中使用

我试图从delphi2010年转换为Delphi XE7(32位/ Windows VCL)的程序。 在D2010中用于通过后期绑定OLE自动化Excel的代码现在在应用程序被最大化或最小化时给出了Delphi XE7中的“无法设置应用程序类的窗口状态属性”exception。 我从具有这些常量的ExcelXP单元中获取常量xlmaximized和xlminimized:xlMaximized = $ FFFFEFD7; xlMinimized = $ FFFFEFD4; 但是,如果我使用简单的常量值-4137和-4140,程序确实工作正常。 我意识到我必须做一些简单的事情是错误的。 以下是一些说明问题的示例代码。 我testing了这个,它在delphi2010年,但不是在delphiXE7。 我想这应该是一个怎样处理新的版本中的常量(?)有人可以指出我在正确的方向吗? 提前致谢! //XLA is a global variable of type OLEVariant; //Program uses ComObj and ExcelXP unit //This proc just runs or connects to Excel procedure TForm3.RunExcelClick(Sender: TObject); begin try xla := GetActiveOLEObject('Excel.Application'); except try xla := CreateOleObject('Excel.Application'); […]

Delphi和Excel.FormatConditions

我在使用早期与Excel 2010绑定的Delphi XE2中设置条件格式时遇到问题 我想重现的macros如下: Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="=6" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False 尝试,因为我似乎无法访问Selction.FormatConditions(1)等效的工作 我最接近的是以下代码: XR := Xlapp.Range(…) XR.FormatConditions.Delete; XR.FormatConditions.Add(xlCellValue, xlGreater, '=6', EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); 哪个工作。 当我尝试和定义颜色我有问题 FC := XR.FormatConditions[1]; FC.SetFirstPriority; with FC.Interior do begin PatternColorIndex := xlAutomatic; ThemeColor := […]

Delphi Excel COM-Addin

我在Delphi 2006中写了一个MS Excel COM-Addin。我在我的开发机器上安装了Excel 2007。 我作为一个ActiveX库开始项目,然后从Delphi ActiveX项目菜单中添加一个自动化对象。 在我的自动化对象中,我定义了IDTExtensibility2接口 IDTExtensibility2 = interface(IDispatch) ['{32E456FC-C710-43AA-9ACA-DDE8F132B91B}'] function OnAddinsUpdate(var w_Custom: OleVariant): HResult; stdcall; function OnBeginShutDown(var w_Custom: OleVariant): HResult; stdcall; function OnConnection(const w_Application: IDispatch; w_ConnectMode: Integer; const w_AddInInst: IDispatch; var w_Custom: OleVariant): HResult; stdcall; function OnDisconnection(w_DisconnectMode: Integer; var w_Custom: OleVariant): HResult; stdcall; function OnStartupComplete(var w_Custom: OleVariant): HResult; stdcall; end; 并在从TAutoObject派生的类中实现接口。 在我打电话的单位的初始化部分 […]

以Excel格式将多个单元格从网格复制到剪贴板?

我正在开发一个连接到SQL数据库的工具,取回数据集,并在网格中显示这些数据。 用户必须能够select一个单元格块(只是矩形),然后按CTRL + C将其复制到剪贴板。 我该怎么做呢: 在可以粘贴到Excel中的格式? 我希望已经有这样的东西了。 它不需要像Excel这样的剪贴板function,只需突出显示矩形的一组单元格并将其复制到剪贴板即可。 如果可以在TStringGrid完成,我宁愿保留我的function,但也可以使用支持此function的组件。