Per aggiungere un nuovo foglio abbiamo bisogno di usare il metodo .Sheets.Add, ha cinque parametri (il foglio prima che, il foglio dopo che, e altri 3 , solo dio lo sa) in questo caso ho usato (NULL, aSheet, NULL, NULL, 0) dove aSheet per inserirlo dopo l'ultimo. 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;
Cordiali saluti, il [ 'Worksheets.Add '] (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheets.add.aspx) metodo ha 4 parametri opzionali. – TLama
'Workbook.Sheets.Add.After;' Farebbe il trucco? – joostmakaay
Forse come 'Workbook.Sheets.Add (NULL, Workbook.Sheets.Count)'. – TLama