我想将图像文件夹中的图像导出到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?
答案 0 :(得分:2)
轻松解决此问题的方法是使用变量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个图像
但无论如何,您实际上可以在代码中设置图像大小。
您可以更轻松地控制行