使用 EPplus 将同一图像多次插入 Excel

Insert Same Image Multiple Times Into Excel Using EPplus

我想使用 EPplus 方法将同一图像多次插入 excel。我在网上研究并尝试了这个 link(Adding images into Excel using EPPlus) 中的方法,但我在这一行收到以下错误 'Name already exists in the drawings collection'

var picture = ws.Drawings.AddPicture(a.ToString(), repeatimage);

这是我的代码:

public void ExportToExcel()
{
    //for export

        ExcelPackage objExcelPackage = new ExcelPackage();   //create new workbook

        string[] filesindirectory = Directory.GetDirectories(Server.MapPath("~/Folder"));
        string repeatimagepath=@"C:\Users\user\Desktop\Project\Project1\Project1\NewProject\NewProject\Image\repeatimage.png";
        Bitmap repeatimage= new Bitmap(repeatimagepath);
        int count = 0;
        int count1 = 0;
        int x = 25;
        int finalValue = 0;

        foreach (string subdir in filesindirectory)
        {
            count++;
            string[] splitter = subdir.Split('\');
            string folderName = splitter[splitter.Length - 1];
            ExcelWorksheet ws = objExcelPackage.Workbook.Worksheets.Add(folderName); //create new worksheet
            count1 = 0;
            foreach (string img in Directory.GetFiles(subdir))
            {
                count1++;
                System.Web.UI.WebControls.Image TEST_IMAGE = new System.Web.UI.WebControls.Image();
                System.Drawing.Image myImage = System.Drawing.Image.FromFile(img);
                var pic = ws.Drawings.AddPicture(count1.ToString(), myImage);  

                **for (int a = 0; a < 5; a++)
                {
                    var picture = ws.Drawings.AddPicture(a.ToString(), repeatimage);
                    picture.SetPosition(a * 5, 0, 2, 0);
                }**

                // Row, RowoffsetPixel, Column, ColumnOffSetPixel
                if (count1 > 1)
                {
                    pic.SetPosition(finalValue, 0, 2, 0);
                    finalValue += (x + 1); // Add 1 to have 1 row of empty row
                }
                else
                {
                    pic.SetPosition(count1, 0, 2, 0);
                    finalValue = (count1 + x) + 1; // Add 1 to have 1 row of empty
                }
                myImage.Dispose();
                repeatimage.Dispose();
            }
        }

        var filepath = new FileInfo(@"C:\Users\user\Desktop\Test\" + datetime.ToString("dd-MM-yyyy_hh-mm-ss") + ".xlsx");
        objExcelPackage.SaveAs(filepath);
}

问:如何使用EPplus将同一张图片多次插入excel?

请帮我解决这个问题,谢谢。

错误已经告诉你答案
这一行你的 count11

var pic = ws.Drawings.AddPicture(count1.ToString(), myImage);  

然后这一行

for (int a = 0; a < 5; a++)
{
    var picture = ws.Drawings.AddPicture(a.ToString(), repeatimage);
    picture.SetPosition(a * 5, 0, 2, 0);
}

你的a0,1,2,3,4作为图片名称
您看到错误了吗?