C# 用c语言从Excel导出OLE对象#

C# 用c语言从Excel导出OLE对象#,c#,excel,C#,Excel,我有一个excel文件,其中包含脚本:getPhotoSheet().OLEObjects.Add(文件名:=strPath,DisplayAsIcon:=False)。Top,它将图片保存到文件中。 我需要将此文件导出到文件夹(我正在使用带有“Microsoft.Office.Interop.Excel”的c#-app)。 我尝试了两种方法: 将文件另存为html页面 按形状获取对象并将其复制到图表中。将图表保存到文件夹中。 但它不起作用,我只得到这个 那么如何从excel导出图片呢?所以,当

我有一个excel文件,其中包含脚本:
getPhotoSheet().OLEObjects.Add(文件名:=strPath,DisplayAsIcon:=False)。Top
,它将图片保存到文件中。 我需要将此文件导出到文件夹(我正在使用带有“Microsoft.Office.Interop.Excel”的c#-app)。 我尝试了两种方法:

  • 将文件另存为html页面
  • 按形状获取对象并将其复制到图表中。将图表保存到文件夹中。 但它不起作用,我只得到这个
  • 那么如何从excel导出图片呢?

    所以,当我尝试“激活”这个对象(它是“包”ole对象或)时,它在“C:\Users\%username%\AppData\Local\Temp”中有副本

    我从excel中复制了如下文件:

    foreach (OLEObject obj in _WorkSheetExcel.OLEObjects())
    {
          Hashtable hs = new Hashtable();
          DirectoryInfo direct = new DirectoryInfo(tempdir);
          foreach (FileInfo file in direct.GetFiles())
          {
              hs.Add(file.Name, null);//get all file names in tempdir
          }
          obj.Activate();//activate oleobject
          foreach (FileInfo file in direct.GetFiles())
          {
              if (!hs.ContainsKey(file.Name) && !file.Extension.ToLower().Contains("tmp"))//find new activated file 
              {
                   FileInfo picture = file.CopyTo(pathpicture + picturename  + file.Extension); //copy picture to folder with original extension
                   break;
              }
          }
    }
    

    奥立已经死了10多年了。对它的支持从未添加到.NET中,因此在C#中无法执行任何有用的操作。Office应用程序是最后一个Mohican应用程序,可能很难删除它。你不会有任何其他的程序仍然可以处理嵌入的对象,一个缩略图是最好的。