.net 使用EPPlus将背景图像添加到Excel不工作

hyrbngr7  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(212)

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

  1. foreach (var file in Filelist)
  2. {
  3. // Load workbook
  4. //var fileInfo = new FileInfo(@file);
  5. FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
  6. Bitmap bmp = new Bitmap("image.png");
  7. //ExcelPackage pkg = new ExcelPackage(fs);
  8. using (var package = new ExcelPackage(fs))
  9. {
  10. // Iterate over workbook sheets
  11. foreach (var sheet in package.Workbook.Worksheets)
  12. {
  13. sheet.BackgroundImage.Image = bmp;
  14. sheet.Protection.IsProtected = false;
  15. }
  16. package.SaveAs(new FileInfo(@"New.xlsx"));
  17. }
  18. fs.Close();
  19. }

字符串

2w2cym1i

2w2cym1i1#

sheet上的BackgroundImage有一个方法SetFromFile,它可以完成这个任务。
完整代码

  1. var file = @"c:\folder\spreadsheet.xlsx"; // Path to your source spreadsheet file here.
  2. var image = @"c:\folder\background.png"; // Path to your background image here.
  3. var imageFile = new FileInfo(image);
  4. using (var fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
  5. using (var package = new ExcelPackage(fs))
  6. {
  7. foreach (var sheet in package.Workbook.Worksheets)
  8. {
  9. sheet.BackgroundImage.SetFromFile(imageFile);
  10. }
  11. package.SaveAs(new FileInfo(@"c:\folder\new.xlsx")); // Path to destination spreadsheet file here;
  12. }

字符串

展开查看全部

相关问题