Tag: delphi

如何使用Delphi正确设置公式的Excel NumberFormat属性?

当从我的Delphi程序通过OLE自动化Excel,并尝试将单元格的NumberFormat属性设置为“常规”并编写公式时,Excel使用此通知引发exception: 项目X.exe引发exception类EVariantInvalidOpError与消息“无效的变体操作”。 换句话说,我的问题是:哪个NumberFormat是包含像concatenate这样的文本函数的公式单元格的最佳格式? 这里是我的示例代码: USE System.Win.ComObj; procedure TForm1.Btn_1Click(Sender: TObject); var XL: variant; Sheet, WorkBook: variant; begin try XL := GetActiveOleObject('Excel.Application'); except XL := CreateOleObject('Excel.Application'); end; XL.Visible := False; WorkBook:=XL.WorkBooks.Add; Sheet:=XL.WorkBooks[1].WorkSheets.Add; Sheet.Name := 'Test-Sheet'; Sheet.Cells[1, 1]:='col1'; Sheet.Cells[1, 1].Font.Bold := True; Sheet.Cells[1, 1].Font.Size := 10; Sheet.Cells[1, 2]:='col2'; Sheet.Cells[1, 2].Font.Bold := True; Sheet.Cells[1, 2].Font.Size := 10; Sheet.Cells[1, 3]:='Basic […]

读取txt文件&用excel打开

使用delphi2007年&试图读取希腊字符与Excel打开TXT文件,我没有得到希腊字符,但符号…任何帮助? 文本文件是用这个代码创build的 CSVSTRList.SaveToFile('c:\test\xxx2.txt'); CSVSTRList是一个TStringList。

Delphi System.Zip xlsx LibreOffice

我的系统是WIN7 64,我使用Delphi XE7组件来创build.xlsx文件。 示例结果文件 。 该文件可以打开与MS Office(没问题),但与LibreOffice我不能因为我有这个错误:“文件已损坏,不能打开…”。 怀疑是System.Zip以某种方式错误地打包文件。 LibreOffice Calc不显示关于为什么无法打开我的文件的任何详细信息。 我不明白如何开始逐项列举问题。 要了解它的原因是在归档方法,我做了以下。 解压缩文件并使用WinRar重新打包。 将它重命名为* .xlsx和vuala。 现在可以打开它。 这是新的重新打包的文件https://yadi.sk/i/bSr6g8xDh3Yde

如何使用Excel2000.pas在Delphi 6中更改Excel工作表TabColor?

我有一个创buildExcelWorkbook的应用程序。 在工作簿中有一些工作表,我想改变每个工作表的标签颜色。 示例代码如下: ExcelApplication.WorkBooks[1].WorkSheets[1].Name := 'Sheet1'; ExcelApplication.WorkBooks[1].WorkSheets[1].Name.ColorIndex := 3; // Raise in here 有什么build议吗?

自定义属性只触发读取语句

所以,我正在尝试做一个组件来完成设置excel,libreoffice等单元的设置。 起初,我只是想设置的价值,但现在,我需要改变单元格的背景颜色,改变字体名称,风格,设置公式等等。所以,我决定做一个types,将举行所有我想改变的东西,所以我做了这个: type TMyCell = class private FBgColor: TColor; FValue: String; FFormula: String; FFormat: String; FFont: TFont; public constructor Create; destructor Destroy; property Value: String read FValue write FValue; property Formula: String read FFormula write FFormula; property Format: String read FFormat write FFormat; property BgColor: TColor read FBgColor write FBgColor; property Font: TFont read FFont […]

delphi – 确定如果Excel启用筛选器

delphi西雅图,Excel 2013年。我有一个Delphi应用程序,它修改了现有的Excel文件。 如果工作表没有启用行1过滤function(即每列中的filter下拉框),那么我想打开它。 我知道如何打开它。 问题是“打开它”确实是一个切换,所以我需要确定它是否已经打开了,这是我似乎无法做到的。 代码的适用部分是: var aws: ExcelWorksheet; begin … aws := oExcel.ActiveSheet as ExcelWorksheet; if aws.FilterMode[LOCALE_USER_DEFAULT] = False then aws.Cells.Item[1, 1].Rows.EntireRow.AutoFilter; 问题是我的IF语句总是返回FALSE,即使第一行启用了FILTER。 我曾尝试使用msoFalse而不是False,但随后出现“不兼容的types”错误。 请注意,我不想执行任何过滤,我只是想显示下拉菜单,以使用户更容易。 我想我的问题是,我正在检查,看看是否实际上是一个filter,而不是“我是否显示filter下拉列表”,但我不知道如何检查…

没有在Excel工作表中命名的单元格,但仍需要从单元格中获取数据

我有一个Excel 2003床单被客户使用。 我需要更新一个从这些单元格中提取数据的Delphi应用程序,但是单元格根本没有被命名,它们只是j3和j55 。 细胞中的数据是否仍然可以发送到其他应用程序? Delphi应用程序可以采取这些值吗?

如何设置空值来优于特定的单元格在delphi?

作为标题,我尝试了一些解决scheme,但都没有成功。 XLApp.Application.cells[1, 1].Value := ''; XLApp.Application.cells[1, 1].Value := nil; XLApp.Application.cells[1, 1].Value := EmptyParam;

delphi:为什么const设置为这个奇怪的值,使用Excel OLE interop?

对不起,我非常无聊,我想知道为什么const lWBATWorkSheet设置在-4167 。 谢谢,杰克 function TForm1.SaveAsExcelFile(AGrid: TStringGrid; ASheetName, AFileName: string): boolean; const xlWBATWorksheet = -4167; var righe, colonne: Integer; GridPrevFile: string; XLApp, Sheet, Data: OLEVariant; l, s: Integer; begin // Prepare Data Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant); for l := 0 to AGrid.ColCount – 1 do for s := 0 to AGrid.RowCount – […]

在Delphi中检测Excel的版本

我正在使用下面的代码来检查用户的计算机上是否存在Excel自动化库: CoInitialize(nil); ExcelExists := true; try TestExcel := CreateOleObject('Excel.Application'); except ExcelExists := false; end; if ExcelExists then begin TestExcel.Workbooks.Close; TestExcel.Quit; TestExcel := Unassigned; end; 这一直工作正常,直到一个用户只有Excel 2003.上面的代码说,他有Excel,但我的Excel自动化不适用于他,我怀疑它不适用于Excel 2003之前的版本。 如何检查安装的Excel版本是否为2007或更高版本? 根据David的回答,我最终把这个放在ifExcelExists声明之后,而且似乎是做了这个工作: S := TestExcel.Application.Version; if (copy(S, 3, 1) <> '.') or (S < '12') then ExcelExists := false; 版本12是Office 2007。