
excel报表插入很多图片,提示内存溢出异常
如果在循环插入图片的代码里面写img.dispose,会导致最后Book.save的时候报错“参数无效”
最终img.dispose写了在代码的最后面,也写了gc.collect,但是多次运行后会提示内存溢出异常
请问下跟图片相关的及时释放内存的代码该怎么写,放在什么位置,谢谢
Dim Sheet2 As XLS.Sheet = Book.Sheets(0)
Dim img As Image
For pg As Integer = 0 To vars("pg") - 1
img = getImage(qzs(rand.Next(0, qzs.Count)))
Dim cz As Integer = Rand.Next (1, 4)
Select Case cz
Case 1
img.RotateFlip(RotateFlipType.Rotate90FlipNone)
Case 2
img.rotateflip(RotateFlipType.Rotate180FlipNone)
Case 3
img.rotateflip(RotateFlipType.Rotate270FlipNone)
End Select
Sheet2(pg * 21 + 13, 13).Value = New XLS.Picture(img, 0, 0, 100, img.Height / img.Width * 100)
Next
Book.Save(fl)
img.Dispose
gc.Collect
试试
Dim Sheet2 As XLS.Sheet = Book.Sheets(0)
For pg As Integer = 0 To vars("pg") - 1
Dim img As Image= getImage(qzs(rand.Next(0, qzs.Count)))
Dim cz As Integer = Rand.Next (1, 4)
Select Case cz
Case 1
img.RotateFlip(RotateFlipType.Rotate90FlipNone)
Case 2
img.rotateflip(RotateFlipType.Rotate180FlipNone)
Case 3
img.rotateflip(RotateFlipType.Rotate270FlipNone)
End Select
Sheet2(pg * 21 + 13, 13).Value = New XLS.Picture(img, 0, 0, 100, img.Height / img.Width * 100)
img.Dispose
gc.Collect
Next
Book.Save(fl)
gc.Collect

这个方法我也测试过了,在Book.Save之前注释掉任何操作,只要出现img.Dispose这一句就保存不了,就会提示参数无效
换种方式,使用vba添加图片:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=147456&replyID=61001&skin=1