如何将行附加到Excel工作表?

时间:2011-02-25 06:55:09

标签: delphi excel delphi-2007

我正在开发一个需要生成Excel工作表的应用程序。我们如何追加行 到现有的excel表?我正在使用Delphi 2007.(我正在使用SM软件TXLS ......组件......但我对本机delphi excel组件中的答案感到满意)。 感谢大家, 普拉迪普

3 个答案:

答案 0 :(得分:5)

多年来,我发现Deborah Pate的网站通过提供有用的代码示例帮助了我:http://www.djpate.freeserve.co.uk/AutoExcl.htm。我们使用CreateOleObject方法。

答案 1 :(得分:3)

通常,您不需要追加行,因为您可以引用要在其中写入的任何单元格。您可能需要在工作表中间插入行,如下所示:

ExcelApplication.ActiveSheet.Rows[10].Insert;

ExcelApplication.ActiveSheet.ActiveCell.EntireRow.Insert;

如果您为Excel开发,我认为使用TExcelApplication更方便,因为它只是类型库的包装器。您可以使用导入的类型库的源代码作为参考。另一个有用的工具是Excel本身的宏录制。通过录制宏创建的VBA代码可以很容易地转换为Delphi代码。有时你需要做一些改变或改进,但是当你遇到困难时它仍然会有很多帮助。

答案 2 :(得分:1)

您可以使用一些未经测试的示例代码将数据插入Excel:

var
  Cols: integer;
  Rows: integer;      
  Excel, XLSheet: Variant;
  failure: Integer;

begin
  failure:=0;
  try
    Excel:=CreateOleObject('Excel.Application');
  except
    failure:=1;
  end;
  if failure = 0 then
  begin
    Excel.Visible:=False;
    Excel.WorkBooks.Open(<Excell_Filename>);
    XLSheet := Excel.Worksheets[1];
    Cols := XLSheet.UsedRange.Columns.Count;
    Rows := XLSheet.UsedRange.Rows.Count;

    //Insert Data
    Excel.Cells[1, 1].Value := 'SwissDelphiCenter.ch';
    Excel.Cells[2, 1].Value := 'http://www.swissdelphicenter.ch';
    Excel.Cells[3, 1].Value := FormatDateTime('dd-mmm-yyyy', Now);

    Excel.Range['A2', 'D2'].Value := VarArrayOf([1, 10, 100, 1000]);

    // Save the Workbook
    Excel.SaveAs(Excell_Filename);

    Excel.Workbooks.Close;
    Excel.Quit;
    Excel:=Unassigned;
  end;
end;