Aby dodać nowy arkusz musimy użyć metoda .Sheets.Add, posiada pięć parametrów (arkusz przed nim arkusz po nim, i inne 3 , tylko Bóg wie) w tym przypadku użyłem (NULL, aSheet, NULL, NULL, 0), gdzie aSheet do wstawienia go po ostatnim. bye
uses
... OleServer, ExcelXP ...
type
TForm1 = class(TForm)
Button1: TButton;
ExcelApplication1: TExcelApplication;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
Excelfile:OleVariant;
aBook: _WORKBOOK;
aSheet: _WORKSHEET;
begin
Excelfile:='c:\plantilla.xls';
ExcelApplication1.connect;
aBook:= ExcelApplication1.workbooks.add(Excelfile,0);
aSheet:= ExcelApplication1.sheets[aBook.Sheets.Count] as _WORKSHEET;
aBook.Sheets.Add(NULL,aSheet,NULL,NULL,0);
aSheet:= ExcelApplication1.sheets[aBook.Sheets.Count] as _WORKSHEET;
asheet.Name:='Test last position';
ExcelApplication1.visible[0]:=true;
ExcelApplication1.disconnect;
end;
FYI, przycisk [ 'Worksheets.Add Metoda '] (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheets.add.aspx) ma 4 opcjonalne parametry. – TLama
'Workbook.Sheets.Add.After;' Czy załatwi sprawę? – joostmakaay
Może być podobny do 'Workbook.Sheets.Add (NULL, Workbook.Sheets.Count)'. – TLama