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