将多个图像从一个目录导出到一个 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 张图片
但无论如何你实际上可以在你的代码中设置图像大小..
你会更容易控制行
我想将图像文件夹中的图像导出到 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 张图片
但无论如何你实际上可以在你的代码中设置图像大小..
你会更容易控制行