Tag: delphi

在Delphi中插入图像到Excel工作表

我在这里有一个问题,我有一个应用程序,我需要添加图像。 我努力了: Sheet.Shapes.AddPicture(G_V.Prog_Dir+'pic.BMP',false,true, 190, 10+(15*rowcount), 100, 100 ); 它工作得很好,但我不想给参数,我想插入图片指定(和参数)单元格,因为我需要添加图片到页面的最后一列; 这个excel需要打印我不得不提到的。 所以我试了一下: Sheet.Range['E'+inttostr(rowcount),'E'+inttostr(rowcount)].Select; Sheet.Pictures.Insert(G_V.Prog_Dir+'pic.BMP'); 一见钟情,但我认为这段代码将图片链接到工作表。 例如,我将创build的Excel发送到另一台计算机,这些图像不能被看到(我不记得确切的错误),当我search它时,我发现接收计算机需要具有确切path的图像。 作为解决scheme,build议使用“Sheet.Shapes.AddPicture”,但正如我之前所说的,我需要另一个解决scheme。 我没有看到有人遇到这种问题,我希望有人帮助我。

保存Excel工作簿作为PDF给我一个OLE错误800A03EC

我有以下function,我想用于从Excel中创buildPDF。 但是,当试图保存PDF时,我得到一个OLE错误800A03EC,我根本无法弄清楚。 我使用相同的方法来从Word创buildPDF,并且工作得很好。 function xlsCreatePdf(aInput: string; aOutput: string = ''): string; var FileDoc: OleVariant; FilePDF: OleVariant; ExcelBook: ExcelWorkbook; PdfName: string; ExcelApp: ExcelApplication; begin Result := ''; if aOutput = '' then begin PdfName := Folders.DirOutput + ExtractFileName(aInput); PdfName := ChangeFileExt(PdfName, '.pdf'); end else PdfName := aOutput; if (Files.Validate(aInput)) then begin if not Assigned(ExcelApp) then ExcelApp […]

无法得到Delphisorting与Excel工作

我正在编写Delphi 10 / Seattle中的程序来控制Excel 2013.我需要根据列进行sorting。 该列有标题。 当我的代码编译时,实际的SORT命令给出错误'不能将types(错误)的变体转换为types(布尔)“。 总之,我有一个参数错误,但我不能确定WHICH参数。 我已经通过MS语法(下面列出的URL),但无法find任何错误。 这是一个显示问题的工作示例。 我DID生成我自己的types库,这是在USES子句中。 uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ComObj, Excel_TLB; .. procedure TForm1.Button2Click(Sender: TObject); var oExcel : ExcelApplication; RawDataSheet :_Worksheet; myChart: Shape; begin oExcel := CreateOleObject('Excel.Application') as ExcelApplication; oExcel.Visible[LOCALE_USER_DEFAULT] := True; // Add a New Workbook, with a single sheet oExcel.Workbooks.Add(EmptyParam, […]

问题复制粘贴CR + LF到Excel电子表格需要软段落(Alt + Enter)

我试图将我们的软件中创build的表复制到Excel电子表格中。 我们应用程序中的一些标题头太大而不适合列,所以它们被#13 +#10(CR + LF)分开,所以它们坐在下一行。 例如 Strain SpikeConc Spike ng/g dpm/g ————————- Blah 20.0 50.1 Blah2 22.1 60.2 但是,当这被复制到Excel中,我们得到一个奇怪的事情发生。 CR + LF被解释为(你猜对了)一个新的行请求。 因此,我们得到的东西看起来完全错误。 例如 Strain SpikeConc ng/g Spike dmp/g ————————- Blah 20.0 50.1 Blah 22.1 60.2 SpikeConc错误地解释了CR + LF,并在新单元格中创build一个新行,而不是创build一个像段落一样的软段落,如果按Alt + Enter并在同一个单元格中给出一个新行。 任何人有任何想法如何编码一个软的段落,而不是一个新的路线? 我已经尝试过使用CR(#13)和它自己的LF(#10),但它们都有相同的行为。 我相信有一些unicode字符 LS:行分隔符,U + 2028 PS:段落分隔符,U + 2029 但我似乎无法find如何将它们编码到我的应用程序中的表格。 PS我们使用Delphi6(不要问)

Delphi的cxGrid rowcount

我使用cxGrid,我想导入一个Excel文件到cxgrid。 我写了这个代码的一个函数。 但是,它错了,因为cxGrid不知道RowCount和ColCount。 我想知道,我能用什么,有什么相似之处? 帮我! 谢谢! function Xls_To_cxGrid(AGrid: TcxGrid; AXLSFile: string): Boolean; const xlCellTypeLastCell = $0000000B; var XLApp, Sheet: OLEVariant; RangeMatrix: Variant; x, y, k, r: Integer; begin Result := False; 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 := […]

ADO与Delphi XE中的XLSX文件

这里的问题是与Excel的ADO连接 – 这仍然是在Dephi XE环境中读取/写入excel文件的标准方式吗? 当使用ACEOLEDB驱动程序(ACE 12)进行读写时,我们会遇到多个问题,这包括 用标签读取单元格不返回结果 导出网格时出现“无效浮点”。 我们也注意到,在微软的网站上有许多版本的ACE 12驱动程序(通过Access数据库驱动程序可执行文件),并且它们每个都与Delphi有不同的问题。 考虑到这些事情, 在这一点上使用Excel的ADO不好? 是否有其他人有这些问题,你做了什么来解决它们(除了使用XLS文件而不是XLSX)?

在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代码,但我只是发现小实验,有没有人有更多的经验呢? 谢谢。

Delphi Excel OLE Chart数据标签问题

我想自动生成具有“文本+百分比”forms的标签的图表,但是我希望在一行上具有文本,并且在下一行中具有百分比。 我使用这个函数来生成图表的标签: E.ActiveChart.ApplyDataLabels(xlDataLabelsShowLabelAndPercent, false,true, true, false, true, true,false, false,'; '); 该函数生成以分号分隔的标签。 所以我基本上想要能够取代'; (新线)?!?! 或者更好的是,检查出VBA后,我发现它在内部被编码为“&Chr(10)&”但是我没有期望的结果,如果我在我的函数中使用这个编码。 所以我的最终结果应该是这样的: 我应该在我的ApplyDataLabels函数中发送什么

导出到Excel – 中间文件格式?

我试图导出非常大量的数据(300.000行* 100列)到Excel(从Delphi应用程序)和OLE方法(DevExpress DX,CX套件的组合解决scheme和出自己的代码)给错误消息没有足够的存储是可用的完成这个操作 , 创buildvariables数组时出错 。 没有好的,准备第三方组件的本地出口,因为我有想法使用中间文件: 我可以导出数据在一些中间文件,然后在Excelt中打开此文件。 但是什么样的格式最适合这种行动呢? :DDD CSV是最简单的一种,但是Excel可以从CSV数据中恢复列格式 – 对我们来说非常重要的一点是,货币数据是以数字forms导出的,并且可以在其上进行计算,该date数据以dateforms导出。 CSV没有这种types的信息。 XML似乎很有希望,因为可以将数据types和格式添加到数据中,但Excel需要的XML格式是什么? 数据库文件似乎很有希望,但它是相当古老的,我不知道是否没有数据量的限制。 我正在寻找Delphi 6的解决scheme。

Delphi控制Excel – 创build数据透视表和图表

delphi10 /西雅图,与Excel 2013.我正在写一个插件(使用AddIn Express)的Excel。 我需要做的一件事是创build一系列Excel数据透视表/数据透视图。 我在Excel中logging了macros,所以我有VBA代码来做我想要的。 我的挑战是将其移植到Delphi。 我的代码编译,当我通过它时,最后一行给我的错误..自动化对象不支持方法'SetSourceData'。 仅供参考 – XLApp是Excel应用程序的可变点。 procedure TMyTemplateForm.Pivot_TouchesByQuarter; var myPivotCache: OleVariant; myActive_WB : OleVariant; MyChart : OleVariant; ChartSourceRange : OleVariant; TabDestination : string; begin // Add the new Sheet XLApp.Connect; myActive_WB := XLApp.ActiveWorkbook; XLApp.Worksheets.Add(EmptyParam, EmptyParam,1, xlWorksheet, LOCALE_USER_DEFAULT ); // Get a handle to the new sheet and set the Sheet […]