Я использую следующий код для добавления фонового изображения в Excel с помощью EPplus. Документ отлично открывается в офисе polaris, но при использовании Excel выдает следующую ошибку
Мы обнаружили проблему с некоторый контент в «filename.xlsx». Вы хотите попытаться восстановить столько, сколько мы можем
Код
foreach (var file in Filelist)
{
// Load workbook
//var fileInfo = new FileInfo(@file);
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
//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(Path.GetFileNameWithoutExtension(file)+".xlsx"));
}
fs.Close();
}
Я проверил соответствующие вопросы SO, некоторые упоминали, что проблема может быть связана с многократным сохранением. Я удостоверился, что L oop ударил только один раз для одного файла.
Обновление: код для создания растрового изображения
using (Graphics g = Graphics.FromImage(bmp))
{
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
SizeF textSize = g.MeasureString("Sample", new Font(DefaultFont.FontFamily, 80));
g.DrawString("Sample", new Font("Tahoma", 80), Brushes.Red, -(textSize.Width / 2), -(textSize.Height / 2));
}