2016-03-18 28 views
2

C# EPPlus içinde yazdırılabilir Excel çalışma sayfasıyla bir resim eklemek ("DRAFT")) eklemek istiyorum.Bir excel sayfasını yazdırırken son satırın satır numarası nasıl alınır (EPPlus)

Yazdırırken bir çalışma sayfasının her sayfasının son görünen satırını bulmanın bir yolu olup olmadığını bilmem gerekiyor. Hücrelerin içeriğine bağlı olduğundan, her zaman sayfa başına sabit sayıda satır olacağını iddia edemem.

Geçerli kodum, resim eklemek için sayfa başına sabit sayıda satır (30) kullanıyor. Bu, her yeni sayfada, görüntünün aynı yerde olmaması haricinde, yazdırılabilir sayfa başına yaklaşık bir resim elde edilir. (Biraz kapalı, hücrelerin içeriğine bağlı.), Nihayet Ernie öneri izleyerek yaptığını başarılı olamadı bir workmate ile EPPlus gelen 'ExcelHeaderFooter.cs' eksik kod uygulamak denedikten sonra

public void InsertDraftImage(ExcelWorksheet worksheet, FileInfo draft_image) 
{ 

    int maxRowNumber = worksheet.Dimension.End.Row; 
    int rowByPage = 30; 
    int numberOfPage = (maxRowNumber/rowByPage) + 1; 


    ExcelPicture picture = null; 
    for(int i = 0; i < numberOfPage; i++) 
    { 
     if(draft_image != null) 
     { 
      picture = worksheet.Drawings.AddPicture(i.ToString(), draft_image); 
      picture.SetSize(609, 545); //original image size 
      picture.SetPosition(i * rowByPage, 0, 1, 0); 
      picture.EditAs = eEditAs.Absolute; 
     } 
    } 
+1

Bunu altbilgi olarak yerleştirmekle ilgili her şey, her sayfanın altında otomatik olarak görünecek şekilde nedir? [Related answer] (http://stackoverflow.com/a/14524378/4879022) – Spidey

+0

Her sayfada büyük bir alanı kapsayan bir resim eklemek istiyorum, böylece kullanıcı büyük resmi nedeniyle verileri kullanmamayı bilmez " Taslak". Bir altbilgi istediğimi gerçekten yapabilir mi bilmiyorum? – pikarie

+0

Tüm sayfada filigran mı kastediyorsunuz? – Spidey

cevap

0

!!

C# içinde EPPlus ile üretilebilir yazdırılabilir bir excel dosyasının her sayfasına resim eklemek için son kodum var.

Resim, altbilgiye eklenir ve Boole ScaleWithDoc öğesi false olarak ayarlanır (default = true).

public void InsertDraftImage(ExcelWorksheet worksheet, FileInfo draft_image) 
{ 
    ExcelHeaderFooterText footer = worksheet.HeaderFooter.OddFooter; //all page have same footer 
    footer.InsertPicture(draft_image, PictureAlignment.Centered); 
} 

Eklendi (, ayarlar, tüm diğer excel tarzı doldurmak) ExcelWorksheet oluşturmak için benim yönteminde bu kodu.

XmlAttribute temp = worksheet.WorksheetXml.CreateAttribute("scaleWithDoc"); 
temp.Value = "0"; 
worksheet.WorksheetXml.GetElementsByTagName("headerFooter")[0].Attributes.Append(temp); 

package.Save();