C# 将文件夹中的图像添加到Excel工作表
我想将图像文件夹中的所有图像导出到Excel中。我想将图像文件夹中的每个图像放入新的excel工作表中。例如,如果文件夹中有十个图像,我希望在同一Excel工作簿上有十个Excel工作表,每个工作表上有一个图像 这是我的代码:C# 将文件夹中的图像添加到Excel工作表,c#,asp.net,excel,export,epplus,C#,Asp.net,Excel,Export,Epplus,我想将图像文件夹中的所有图像导出到Excel中。我想将图像文件夹中的每个图像放入新的excel工作表中。例如,如果文件夹中有十个图像,我希望在同一Excel工作簿上有十个Excel工作表,每个工作表上有一个图像 这是我的代码: string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Image")); int count = 0; foreach (s
string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Image"));
int count = 0;
foreach (string img in filesindirectory)
{
count++;
ExcelWorksheet ws = objExcelPackage.Workbook.Worksheets.Add("Worksheet - " + count); //create new worksheet
System.Web.UI.WebControls.Image TEST_IMAGE = new System.Web.UI.WebControls.Image();
TEST_IMAGE.ImageUrl = "Image/" + Path.GetFileName(img);
TEST_IMAGE.ImageUrl = this.GetAbsoluteUrl(TEST_IMAGE.ImageUrl);
//I want to insert image here
var filepath= new FileInfo(@"C:\Users\user\Desktop\folder\" + datetime.ToString("dd-MM-yyyy_hh-mm-ss") + ".xlsx");
objExcelPackage.SaveAs(filepath);
这是我的更新代码:
string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Image"));
int count = 0;
foreach (string img in filesindirectory)
{
count++;
ExcelWorksheet ws = objExcelPackage.Workbook.Worksheets.Add("Worksheet - " + count); //create new worksheet
System.Web.UI.WebControls.Image TEST_IMAGE = new System.Web.UI.WebControls.Image();
var filedest = new FileInfo(@"C:\Users\user\Desktop\Project\Project1\Source Code\Test\Test\Image\");
System.Drawing.Image myimage = System.Drawing.Image.FromFile(filedest);
var pic = ws.Drawings.AddPicture("NAME", myimage);
var filepath = new FileInfo(@"C:\Users\user\Desktop\folder\" + datetime.ToString("dd-MM-yyyy_hh-mm-ss") + ".xlsx");
objExcelPackage.SaveAs(filepath);
但我得到了以下错误:
用户代码未处理FileNotFoundException
,在这一行:
var filedest = new FileInfo(@"C:\Users\user\Desktop\Project\Project1\Source Code\Test\Test\Image\");
如何使用EPPlus和我的当前代码将文件夹中的图像添加到Excel工作表?这将帮助您
// Variable
string[] filesDirectory = Directory.GetFiles(Server.MapPath("~/Image"));
int count = 0;
foreach(string img in filesDirectory)
{
count++;
ExcelWorksheet ws = pkg.Workbook.Worksheets.Add("Worksheet - " + count);
// img variable actually is your image path
System.Drawing.Image myImage = System.Drawing.Image.FromFile(img);
var pic = ws.Drawings.AddPicture("NAME", myImage);
// Row, RowoffsetPixel, Column, ColumnOffSetPixel
pic.SetPosition(1, 0, 2, 0);
}
查看这个链接hi@Nic,我已经在线研究并找到了这个方法:for(inta=0;a<5;a++){ws.Row(a*5).Height=39.00D;var picture=ws.Drawings.AddPicture(a.ToString(),logo);picture.SetPosition(a*5,0,2,0);},但我不知道如何在我的代码中使用它。请给我一些建议谢谢。你好@Nic,我尝试过你建议的方法,但是我得到了“FileNotFoundException未被用户代码处理”错误,请查看我更新的帖子谢谢。你对
img
变量做了什么?它不应该被传递到System.Drawing.Image.FromFile
?@Nic,这并不能真正回答我的问题。在文件上循环,路径在img
变量中。因此,这就是你应该传递给System.Drawing.Image.FromFile
的内容,而不是“你的图像路径”。@mason我知道你的意思。。我将更新答案,这样她就不会混淆实际答案是img
=`“你的图像路径”@FeliciaSoh检查答案,并将你的var filepath=new FileInfo(@“C:\Users\user\Desktop\folder\”+datetime.ToString(“dd-MM-yyyy\u hh-MM-ss”)+“.xlsx”);objExcelPackage.SaveAs(文件路径)代码>循环外。