2013-12-12 15 views
5

Ben Delphi ile Excel sayfası oluşturma yapıyorum ama karşılaştığım sorun olduğunu ben bu kodu kullandığınızda: Yeni sayfa seçili çalışma öncesinde eklenirÇalışma kitabının son sayfasından sonra çalışma sayfası nasıl eklenir?

Workbook.Sheets.Add; 

:

enter image description here

Çalışma kitabının son sayfasından sonra çalışma sayfası nasıl ekleneceğini bilen var mı?

+2

Bilginize [ 'Worksheets.Add belirterek değilim diğer parametreler için Type.Missing kullanmak gerekir olduğunu bulma yaşıyorum '(http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheets.add.aspx) yöntemi 4 isteğe bağlı parametreye sahiptir. – TLama

+1

'Çalışma Kitabı.Sheets.Add.After;' hile yapar mı? – joostmakaay

+3

Belki de 'Workbook.Sheets.Add (NULL, Workbook.Sheets.Count) 'gibi. – TLama

cevap

5

Add yöntemi, yeni sayfanın, özellikle de After parametresinin nereye ekleneceğini belirtmeniz için parametreleri kabul eder. Yeni sayfayı daha sonra eklemek için sayfaya başvurulmalıdır. Senin durumunda, son sayfayı istiyorsun. Worksheets 1 tabanlı bir dizidir, bu nedenle son sayfa Worksheets[Worksheets.Count] tarafından verilir. Hepsini bir araya getirirsek, biz bu olsun:

Workbook.Worksheets.Add(After := Workbook.Worksheets[Workbook.Worksheets.Count]); 
1

biz yöntemi .Sheets.Add kullanmaya gerek yeni bir sayfa eklemek için, beş parametre (ondan önce levha, ondan sonra levha ve diğer 3 sahiptir , sadece tanrı bilir) bu durumda, sonuncusundan sonra aSheet'in ekleneceği (NULL, aSheet, NULL, NULL, 0) kullanılır. güle

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; 
+0

Yığın Taşması'na Hoş Geldiniz. Genelde, sorulara cevap vermek için gereken bazı kodların yanı sıra, bazı soruların cevaplandırılması için cevapları tercih ediyoruz. Kodun kendisi bir soruyu cevaplamakta yetersiz kalmaktadır, çünkü okuyucunun, kodun tam olarak hangi kısmının eldeki soruyla gerçekten alakalı olduğunu anlamak için çok dikkatli bir şekilde incelemesi gerekmektedir. –

+0

tamam .. yorum için teşekkürler. – Pericles

+0

Bu, erken sınırlıdır. Asker geç bağlı kullanıyor. –

-1

parametre doğruysa sonra kullanarak, ama aynı zamanda ben,

İlgili konular