As you know, Excel doesn't have the concept of a watermark. The problem with adding a shape or image to a worksheet is that it will float over the cells. If you want something to appear behind the cells, the best way is to put a large image in the header or footer, as described in this MS article: http://office.microsoft.com/en-us/excel-help/mimic-a-watermark-in-excel-HP010103239.aspx
To do this programmatically with the ExcelWriter API, you can use the SetContent method of the HeaderFooterSection object. You can also adjust dimensions of the image with the HeaderFooterPicture object.
Example:
ExcelApplication xla = new ExcelApplication();
Workbook wb = xla.Create(ExcelApplication.FileFormat.Xlsx);
Worksheet sheet1 = wb.Worksheets[0];
PageSetup pgsetup = sheet1.PageSetup;
HeaderFooterSection centerFooter = pgsetup.GetFooter(HeaderFooterSection.Section.Center);
string watermarkImagePath = @"C:\images\watermark.jpg";
using (FileStream fs = File.Open(watermarkImagePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
//Note: Excel requires including the "&G" code when inserting
//an image in a header or footer
centerFooter.SetContent("&G",fs);
}
xla.Save(wb, Page.Response, "watermarktest.xlsx", false);
More information about formatting headers and footers: http://wiki.softartisans.com/display/EW8/Formatting+Headers+and+Footers