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

我正在开发一个需要生成Excel表的应用程序。 我们如何将行添加到现有的Excel表单中? 我正在使用delphi2007年(和我正在使用SM软件TXLS …组件…但我确定在本机delphiExcel组件的答案)。 谢谢大家,Pradeep

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

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

ExcelApplication.ActiveSheet.Rows[10].Insert; 

要么

 ExcelApplication.ActiveSheet.ActiveCell.EntireRow.Insert; 

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

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