Skip to content

Header and Footer

AdrianEPPlus edited this page Apr 16, 2025 · 13 revisions

Headers and Footers of printed worksheets are set via the ExcelWorksheet.HeaderFooter property.

Set a header

If you want the same header on all pages when printing the worksheet, use the ExcelWorksheet.HeaderFooter.OddHeader property only.

using(var package = new ExcelPackage())
{
   var sheet = package.Workbook.Worksheets.Add("Sheet1");
   // add a logo to upper left corner
   using(var fs = new FileStream(@"c:\images\myLogo.jpg", FileMode.Open))
   {
      var drawing = sheet.HeaderFooter.OddHeader.InsertPicture(fs, ePictureType.Jpg, PictureAlignment.Left);
      // you can use the drawing instance to change Height, Width, etc.
   }
   // add todays date to the upper right corner
   sheet.HeaderFooter.OddHeader.RightAlignedText = ExcelHeaderFooter.CurrentDate;
}

HeaderFooter1

OddHeader and EvenHeader

When setting values both ExcelWorksheet.HeaderFooter.OddHeader and ExcelWorksheet.HeaderFooter.EvenHeader these will be used on every second page respectively, starting with OddHeader. See example below

// for odd page numbers - add an image in the upper left corner
using var fs1 = new FileStream(imgPath1, FileMode.Open);
sheet.HeaderFooter.OddHeader.InsertPicture(fs1, ePictureType.Jpg, PictureAlignment.Left);

// for even page numbers - add an image in the upper right corner
using var fs2 = new FileStream(imgPath2, FileMode.Open);
sheet.HeaderFooter.EvenHeader.InsertPicture(fs2, ePictureType.Jpg, PictureAlignment.Right);


sheet.HeaderFooter.OddHeader.RightAlignedText = ExcelHeaderFooter.CurrentDate;
sheet.HeaderFooter.EvenHeader.LeftAlignedText = ExcelHeaderFooter.CurrentDate;

Insert auto text

As demonstrated in the examples above you can insert various values by using static constants from the ExcelHeaderFooter class. See table below:

Field Description
PageNumber Page number of the current printed page
NumberOfPages Total number of printed pages
FontColor Text font color
SheetName The name of the printed worksheet
FilePath File path of the workbook
FileName File name of the workbook
CurrentDate The current date
CurrentTime The current time
Image Background image of the printed sheet
OutlineStyle Outline style
ShadowStyle Shadow style

Footers

Works as headers (see above), but use ExcelWorksheet.HeaderFooter.OddFooter and ExcelWorksheet.HeaderFooter.EvenFooter instead.

Using the ExcelHeaderFooterTextCollection

As of EPPlus 8.1 you can now handle HeaderFooter text as a list of objects with properties just like Rich text. This is an addition to the current system and is compatible with the current way you work with Headers and Footers in EPPlus.

The HeaderFooter object in the worksheet now has 3 new properties, LeftAligned, Centered and RightAligned. Each contains a collection of ExcelHeaderFooterTextItems that contains the text and it's properties. You can also add or insert pictures, page numbers, dates and so on using the collection.

Example how to add a footer with text and page number:

worksheet.HeaderFooter.OddFooter.LeftAligned.AddText("Page: ");
worksheet.HeaderFooter.OddFooter.LeftAligned.AddPageNumber();

Example how to change font and size:

var text = worksheet.HeaderFooter.OddHeader.RightAligned.AddText("My Document");
text.FontSize = 24;
text.FontName = "Arial";

Example how to insert a picture using a FileInfo:

FileInfo myPicture = new FileInfo("myPicture.png");
var text = worksheet.HeaderFooter.OddHeader.RightAligned.AddPicture(myPicture);

See also

EPPlus wiki

Versions

Worksheet & Ranges

Styling

Import/Export data

Formulas and filters

Charts & Drawing objects

Tables & Pivot Tables

VBA & Protection

Clone this wiki locally