使用 EPPlus 将背景图像添加到 Excel 不起作用



我使用以下代码使用 EPPlus 将背景图像添加到 Excel 工作表中,但是保存的 Excel 没有任何背景图像。在使用在线 excel 打开文件时,它说工作簿已损坏。

foreach (var file in Filelist)
{
// Load workbook
//var fileInfo = new FileInfo(@file);
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Bitmap bmp = new Bitmap("image.png");
//ExcelPackage pkg = new ExcelPackage(fs);
using (var package = new ExcelPackage(fs))
{
// Itterate through workbook sheets
foreach (var sheet in package.Workbook.Worksheets)
{
sheet.BackgroundImage.Image = bmp;
sheet.Protection.IsProtected = false;
}
package.SaveAs(new FileInfo(@"New.xlsx"));
}
fs.Close();
}

sheet上的BackgroundImage有一个方法SetFromFile可以解决问题。

完整代码

var file = @"c:folderspreadsheet.xlsx"; // Path to your source spreadsheet file here.
var image = @"c:folderbackground.png"; // Path to your background image here.
var imageFile = new FileInfo(image);
using (var fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var package = new ExcelPackage(fs))
{
foreach (var sheet in package.Workbook.Worksheets)
{
sheet.BackgroundImage.SetFromFile(imageFile);
}
package.SaveAs(new FileInfo(@"c:foldernew.xlsx")); // Path to destination spreadsheet file here;
}

最新更新