【发布时间】:2015-05-22 16:08:04
【问题描述】:
我对此进行了相当广泛的研究,但还没有找到我正在寻找的东西。我发现的两种方法是
1:使用 Microsoft.Office.Interop.Excel,遍历工作簿的形状,然后将图像复制到剪贴板,然后获取剪贴板数据并将其放入位图,最后保存该位图。这种方法的问题是剪贴板。我们希望在多线程环境中使用它,并且担心线程之间的剪贴板问题。我们宁愿不处理剪贴板锁定。
2:将文件另存为 .HTML 文件,然后从保存文档的“_files”文件夹中获取图像。这样做的问题是为每个图像创建了两个图像(1 个高分辨率,1 个低分辨率),并且没有好的方法来确定哪些图像是低分辨率的,哪些图像是高分辨率的,因为它们都被命名image### 和一些文件将它们列为高、低、高、低,而有些则将它们列为高、高、低、低。使用所有这些文件很慢并且占用空间,这并不理想。我可以按纵横比检查图像,但这显然不是很好,因为多张图像可能具有相同的纵横比。
有没有办法将 Excel.Shape 直接解析为位图(或任何图像格式)而不使用剪贴板?似乎必须有一种方法,因为 Shape.CopyPicture 方法能够以图像格式将其发送到剪贴板。 否则,有没有办法在不重复的情况下做类似于数字 2 的事情?我更喜欢避免使用 3rd 方库的解决方案。
谢谢。
【问题讨论】: