我有一个客户正在使用的 Excel 2003 工作表。
我需要更新从这些单元格中提取数据的 Delphi 应用程序,但单元格根本没有命名,它们只是j3
和j55
.
来自单元格的数据仍然可以发送到其他应用程序吗?
Delphi 应用程序可以采用这些值吗?
我有一个客户正在使用的 Excel 2003 工作表。
我需要更新从这些单元格中提取数据的 Delphi 应用程序,但单元格根本没有命名,它们只是j3
和j55
.
来自单元格的数据仍然可以发送到其他应用程序吗?
Delphi 应用程序可以采用这些值吗?
您可以使用 OLE 通过 Delphi 处理 Excel 文件。
uses
ComObj;
procedure TForm3.btn1Click(Sender: TObject);
var
ExcelApp: OleVariant;
begin
try
ExcelApp := CreateOleObject('Excel.Application');
if not VarIsEmpty(ExcelApp) then
Begin
ExcelApp.Workbooks.Open('c:\yourfile.xls'); //Open File
ShowMessage(ExcelApp.Range['J55', 'J55'].Value); //Extract value from Cell J55
End;
finally
if not VarIsEmpty(ExcelApp) then
begin
ExcelApp.DisplayAlerts := False;
ExcelApp.Quit;
end;
end;
end;
再见。
当然,为什么不呢?
您可以使用 Excel 对象模型并使用一系列类来访问单元格的内容。
VB(脚本)示例
dim xlApp
set xlApp = CreateObject("Excel.Application")
dim wkBook
set wkBook = xlApp.WorkBooks.Add
dim wkSheet
set wkSheet = wkBook.Sheets(1)
dim cell
set cell = wkSheet.Cells("A1") 'get the reference to cell A1
msgbox cell.Value
了解 Excel 对象模型的最佳方法是
1. 打开 Excel
2. 按 ALT + F11(VBA 编辑器)
3. 按 F2(用于对象浏览器)
4. 从显示的下拉列表中选择 Excel
根类是应用程序,然后事情从那里流动。
例如工作簿 -> 工作表 -> 工作表 -> 单元格(范围)等。
希望有帮助。