Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用EPPlus将背景图像添加到Excel不工作_C#_.net_Excel_Office Interop_Epplus - Fatal编程技术网

C# 使用EPPlus将背景图像添加到Excel不工作

C# 使用EPPlus将背景图像添加到Excel不工作,c#,.net,excel,office-interop,epplus,C#,.net,Excel,Office Interop,Epplus,我正在使用以下代码使用EPPlus将背景图像添加到Excel工作表中。但是保存的Excel没有任何背景图像。并且在使用联机Excel打开文件时,会显示工作簿已损坏 foreach (var file in Filelist) { // Load workbook //var fileInfo = new FileInfo(@file); FileStream fs = new

我正在使用以下代码使用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();
            }

工作表上的
BackgroundImage
有一个方法
SetFromFile
,可以实现这一功能

完整代码

var file = @"c:\folder\spreadsheet.xlsx"; // Path to your source spreadsheet file here.
var image = @"c:\folder\background.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:\folder\new.xlsx")); // Path to destination spreadsheet file here;
}

工作表上的
BackgroundImage
有一个方法
SetFromFile
,可以实现这一功能

完整代码

var file = @"c:\folder\spreadsheet.xlsx"; // Path to your source spreadsheet file here.
var image = @"c:\folder\background.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:\folder\new.xlsx")); // Path to destination spreadsheet file here;
}

您是否尝试过@markmcwhiter问题中的技术,它用于在单元格中添加图像,对吗?我想添加背景图像。您是否尝试过@markmcwhiter问题中的技术,它用于在单元格中添加图像,对吗?我想添加一个背景图像。谢谢,但这在我的情况下也不起作用。你测试过代码吗?是的,我已经安装好并在我身边运行了。。。取得了预期的效果。您能提供任何反馈吗?请查看我的输出Excel表。另外,我只在上面的代码
foreach(package.Workbook.Worksheets中的var表){Sheet.BackgroundImage.SetFromFile(new FileInfo(“image.png”))中替换了这一行;sheet.Protection.IsProtected=false;}
在将新的干净Excel文件集成到您的系统中之前,您可以按原样尝试上面的代码吗?谢谢,但这在我的情况下也不起作用。您测试过代码吗?是的,我已将其安装并运行在我的身边。。。取得了预期的效果。您能提供任何反馈吗?请查看我的输出Excel表。另外,我只在上面的代码
foreach(package.Workbook.Worksheets中的var表){Sheet.BackgroundImage.SetFromFile(new FileInfo(“image.png”))中替换了这一行;sheet.Protection.IsProtected=false;}
在将新的干净Excel文件集成到您的系统之前,您是否可以按原样尝试上面的代码?