在Excel中插入一行

时间:2013-01-28 15:12:19

标签: delphi delphi-xe2 excel-2010

我试图说服Excel从Delphi应用程序中插入一行。

通常情况下,我只是将新数据附加到电子表格的末尾,但此应用程序的摘要具有紧密的模板设计。

这个question有一个答案,GolezTrol建议使用以下代码:

ExcelApplication.ActiveSheet.Rows[10].Insert;

ExcelApplication.ActiveSheet.ActiveCell.EntireRow.Insert;

使用Excel2010当我尝试编译任一选项时,我得到“Undeclared Identifier'Rows'”或“Undeclared Identifier:ActiveCell”。

任何允许我这样做的建议?

1 个答案:

答案 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);
  ..