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

我想从一个图像文件夹中导出图像到一个工作表上的所有图像的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?

简单的方法来解决这个问题是使用你的variablescount

 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图像
但无论如何,你实际上可以在你的代码中设置图像大小..
你会更容易控制行