我使用以下代码使用EPPlus将背景图像添加到Excel中。文档在polaris office中打开正常,但使用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))
{
// Iterate over 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问题,有些人提到这个问题可能是由于保存多次。我确保循环只对一个文件命中一次。
更新:位图生成代码:
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));
}
型
1条答案
按热度按时间5ktev3wc1#
在我的例子中工作得很好:
字符串

}
下面是输出: