将多个图像从一个目录导出到一个 Excel 工作表

Export multiple images from a directory to one Excel worksheet

我想将图像文件夹中的图像导出到 Excel,所有图像都在一张工作表上。我设法导出了一张图片,但只有一张图片。这是我的代码:

public void ExportToExcel()
    {
        //for export
        ExcelPackage objExcelPackage = new ExcelPackage();   //create new workbook

        string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Image"));
        int count = 0;

        ExcelWorksheet ws = objExcelPackage.Workbook.Worksheets.Add("Worksheet" + count); //create new worksheet

                    foreach (string img in filesindirectory)
                    {
                    count++;
                    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(count.ToString(), myImage);
                    // Row, RowoffsetPixel, Column, ColumnOffSetPixel
                    pic.SetPosition(1, 0, 2, 0);
                        }
                }                            
        var filepath = new FileInfo(@"C:\Users\user\Desktop\Test\" + datetime.ToString("dd-MM-yyyy_hh-mm-ss") + ".xlsx");
        objExcelPackage.SaveAs(filepath);
    }

这是我想要实现的输出:

如何使用 EPPlus 在一个 Excel 工作表中将目录中的所有图像导出到 Excel?

实现此目的的简单方法是使用变量 count

int x = 8;
int finalValue = 0;

if (count > 1) {
    pic.SetPosition(finalValue , 0, 2, 0);
    finalValue += (x + 1); // Add 1 to have 1 row of empty row
}
else {
    pic.SetPosition(count, 0, 2, 0);
    finalValue = (count + x) + 1; // Add 1 to have 1 row of empty
}

x 取决于您的图像行大小。

例如,您的图片使用 8 行作为 1 张图片
但无论如何你实际上可以在你的代码中设置图像大小..
你会更容易控制行