Tag: delphi xe2量

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 := […]

从Delphi中closuresExcel

有人会协助我肯定是我的一个基本的错误请。 我的目标是打开一个Excel电子表格(不可见),填充它,附加到电子邮件,发送和closures所有东西。 它接近完成,除了Excel在任务pipe理器中保持打开状态之后,stream程完成之后。 代码块是: procedure TFMain.SendEmail; var i, j, r: Integer; vBody, vSaveVer: string; vAttach: TIdAttachment; vMftQty: array [1 .. 2] of Integer; vQtyTot: array [1 .. 12] of Integer; vNetTot: array [1 .. 12] of Real; oXL, oWB, oSheet: Variant; begin IdMessage1.From.Address := 'sage@valid-email.co.uk'; IdMessage1.From.Domain := 'valid-email.co.uk'; IdMessage1.From.Text := 'Sage <sage@valid-email.co.uk>'; IdMessage1.Subject := 'Sage'; […]

在Excel和PowerPoint文档中使用OLEsearch和replace

我成功地编写了这个代码在MSWord文档中执行search和replace。 现在我需要为xls,xlsx,ppt和pptx做这个工作。 这个想法是“parsing所有的文件,并find每个stringreplace它”。 想象一下,我想用实际的用户名replacestring“ <MY_USER_NAME>" ,这个string是在Excel工作表1,2或3还是在特定的Powerpoint页面中并不重要。 我google代码,但我只是发现小实验,有没有人有更多的经验呢? 谢谢。

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议么?

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 := […]

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

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

运行带有嵌套var访问的Delphi程序后,Excel.exe仍然会被加载

我遇到了一个奇怪的问题, 为什么excel.exe在运行delphi客户端自动化程序后仍然被加载? 题。 问题是更深入一步。 我已经得到了Delphi 7编写的代码,并将其升级到XE2。 这样做后,我有同样的问题在XE2和build议的解决scheme在简单的testing应用程序工作,只要我使用这些行Excel.exe保持加载程序退出后: fExcel: Variant; // Tried both as a field of a class and global variable fExcel := CreateOleObject('Excel.Application'); try fExcel.Workbooks.Open(srcPathName); fExcel.DisplayAlerts := False; … // Offending lines fExcel.ActiveWorkBook.ActiveSheet.Range[ // fExcel.ActiveWorkBook.ActiveSheet.Cells[3, 2], // fExcel.ActiveWorkBook.ActiveSheet.Cells[3+i,1+XL_PT_Tip_FieldCount] // ].Formula := VarArr; // … fExcel.ActiveWorkBook.SaveAs(tgtPathName, -4143, '', '', False, False); fExcel.ActiveWorkBook.Close; finally fExcel.Application.Quit; fExcel.Quit; […]

如何设置Excel列types和格式?

我正在将数据从CxDBGrid导出到Excel文件。 我能够创build文件并在其中复制数据,但是我在列格式上遇到了麻烦。 由于我从数据库中提取数据,所以我希望电子表格能够反映types:NUMBER,VARCHAR2,DATE等等。 我直观地创build了一个macros,去寻找VBA代码,并将其复制到Delphi项目中: sheet.Columns[K+2].NumberFormat := '0,000'; //Number sheet.Columns[K+2].NumberFormat := '@'; //Text sheet.Columns[K+2].NumberFormat := 'm/d/yyyy'; //Date 数字格式化在大多数情况下都能正常工作,但其他两种则不能。 当我打开生成的文件时,文本列显示为types“自定义”,每个单元显示“-64”。 如果我去编辑单元格,正确的值实际上是在那里。 date是另一个问题:数据库的格式是dd / mm / yyyy,如果我按照原样将它提供给Excel,它会变得混乱。 我试图设置正确的格式,但然后Excel不能识别它。 任何线索? 我也设置列宽。 这工作完美无瑕。