Tachiro 发表于 2022-10-17 10:44:35

C1Excel + XLPictureShape 图片文件锁住问题


使用 C1Excel + XLPictureShape 产生 xlsx 文件,
执行过程没有错误,但图片文件会被锁住(例如无法更名),除非我把程序关闭了
(如按钮1 所示)

我换了写法,但都会有问题,想问问看到底该怎么写才正确?

使用 Dispose() 写法,会引发 System.ArgumentException 的例外错误
Image img = Image.FromFile(file);
img.Dispose();
(如按钮2 所示)

使用 using 写法,会引发 GDI+ 的例外错误
using (FileStream stream = new FileStream(file, FileMode.Open, FileAccess.Read))
(如按钮3 所示)

Richard.Ma 发表于 2022-10-17 17:27:25

可以把文件流拷贝到内存流中,这个代码刚刚测试可行


      Bitmap LoadImageFromFile(string filepath)
      {
            using (var fs = new FileStream(filepath, FileMode.Open))
            {
                var memStream = new MemoryStream();
                fs.CopyTo(memStream);
                Image image = Image.FromStream(memStream);
                return (Bitmap)image;
            }
      }

Tachiro 发表于 2022-11-21 09:57:10

谢谢回复,我参考您的代码,改成以下代码,是可行的!

Image img;

using (var bmpTemp = new Bitmap(filePath))
{
    img = new Bitmap(bmpTemp);
}

Richard.Ma 发表于 2022-11-21 10:58:42

好的,那这个帖子就结贴了
页: [1]
查看完整版本: C1Excel + XLPictureShape 图片文件锁住问题