C# 将图片添加到Excel工作表时内存不足
我的记忆力有问题 我想将图片添加到我的excel中。Picuters位于azure blob上 在添加了1k的图片后,我的程序慢了很多,直到出现outofmemory异常 我将在此处粘贴我的代码:C# 将图片添加到Excel工作表时内存不足,c#,.net,excel,image,C#,.net,Excel,Image,我的记忆力有问题 我想将图片添加到我的excel中。Picuters位于azure blob上 在添加了1k的图片后,我的程序慢了很多,直到出现outofmemory异常 我将在此处粘贴我的代码: string filePath = @"excel.xlsx"; int i = 0; public void Generate(int worksheetnumber) { using (FileStream fileStream = File.Open(fi
string filePath = @"excel.xlsx";
int i = 0;
public void Generate(int worksheetnumber)
{
using (FileStream fileStream = File.Open(filePath, FileMode.Open))
{
var package = new ExcelPackage(fileStream);
ExcelWorksheet workSheet = package.Workbook.Worksheets[worksheetnumber];
workSheet.Column(2).Width = 21;
workSheet.Column(4).Width = 21;
for (int j = workSheet.Dimension.Start.Row + 1; j <= workSheet.Dimension.End.Row; j++)
{
InsertImage(workSheet, j, 1);
InsertImage(workSheet, j, 3);
}
string path = string.Format(@"{0}.xlsx", worksheetnumber);
Stream stream2 = File.Create(path);
package.SaveAs(stream2);
stream2.Close();
}
}
private void InsertImage(ExcelWorksheet workSheet, int j, int columnNumber)
{
if (!string.IsNullOrEmpty(workSheet.Cells[j, columnNumber].Text))
{
try
{
var splittedUrlHash = workSheet.Cells[j, columnNumber].Text.Split('/');
using (var stream = DownloadBlobFileToStream(splittedUrlHash[1], splittedUrlHash[0], SHOP))
{
Image image = Image.FromStream(stream);
var picture = workSheet.Drawings.AddPicture(string.Format("{0}{1}", j, columnNumber+1), image);
stream.Close();
picture.From.Column = columnNumber;
picture.From.Row = j - 1;
picture.To.Column = columnNumber;
picture.To.Row = j - 1;
picture.SetSize(150, 120);
workSheet.Row(j).Height = 100;
Debug.WriteLine("Dodano obrazek - {0}", i);
i++;
}
}
catch (System.ArgumentException e)
{
}
}
}
stringfilepath=@“excel.xlsx”;
int i=0;
公共void生成(int工作表编号)
{
使用(FileStream FileStream=File.Open(filePath,FileMode.Open))
{
var package=新的ExcelPackage(文件流);
Excel工作表=package.Workbook.Worksheets[工作表编号];
工作表。第(2)列。宽度=21;
工作表。第(4)列。宽度=21;
对于(int j=workSheet.Dimension.Start.Row+1;j)引发异常时,是否检查了当前内存中的对象?是的,excel工作表->内存流引发异常时,是否检查了当前内存中的对象?是的,excel工作表->内存流