我试图说服Excel从Delphi应用程序中插入一行。
通常情况下,我只是将新数据附加到电子表格的末尾,但此应用程序的摘要具有紧密的模板设计。
这个question有一个答案,GolezTrol建议使用以下代码:
ExcelApplication.ActiveSheet.Rows[10].Insert;
或
ExcelApplication.ActiveSheet.ActiveCell.EntireRow.Insert;
使用Excel2010当我尝试编译任一选项时,我得到“Undeclared Identifier'Rows'”或“Undeclared Identifier:ActiveCell”。
任何允许我这样做的建议?
答案 0 :(得分:4)
您正在使用早期绑定,您在链接的问题中提到的答案是后期绑定。您可以使用以下代码测试该答案:
var
Excel: OleVariant;
begin
Excel := CreateOleObject('Excel.Application');
Excel.Visible := True;
Excel.Workbooks.Add;
Excel.ActiveSheet.Rows[10].Insert;
...
然而,对象模型与早期绑定接口有些不同。您可以找到参考here。
插入行的示例可以如下所示。假设'Workbook'指的是一个有效的工作簿,你可以在第10行插入一行,如下所示:
var
Range: ExcelRange;
begin
Range := (Workbook.ActiveSheet as _Worksheet).Range['A10', 'A10'].EntireRow;
Range.Insert(xlShiftDown, Null);
..