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

发布于 2024-10-19 07:19:41 字数 149 浏览 6 评论 0原文

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

I am developing an application that need to generate excel sheets. How do we append rows
to an existing excel sheet? I am using Delphi 2007.(and I am using SM Software TXLS... components...but I am ok with answers in native delphi excel components).
Thanking you all,
Pradeep

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

余生共白头 2024-10-26 07:19:41

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

Over the years, I've found Deborah Pate's site has helped me by providing useful code samples: http://www.djpate.freeserve.co.uk/AutoExcl.htm. We use the CreateOleObject approach.

極樂鬼 2024-10-26 07:19:41

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

ExcelApplication.ActiveSheet.Rows[10].Insert;

或者

ExcelApplication.ActiveSheet.ActiveCell.EntireRow.Insert;

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

Normally you won't need to append rows, because you can just reference any cell to write in it. You may need to insert rows in the middle of your sheet like this:

ExcelApplication.ActiveSheet.Rows[10].Insert;

or

ExcelApplication.ActiveSheet.ActiveCell.EntireRow.Insert;

If you develop for Excel, I think it is more convenient to use TExcelApplication because it is just a wrapper around the type library. You can use the source code of the imported type library as a reference. Another helpful tool is the macro recording in Excel itself. The VBA code created by recording a macro can easily be translated into Delphi code. Sometimes you need to do little changes or improvements, but it is still a lot of help when you are stuck.

比忠 2024-10-26 07:19:41

您可以使用一些未经测试的示例代码将数据插入 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;

Hier some untested sample code you can use to insert data to 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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文