从Excel单元格导出位图图像

时间:2012-01-13 15:11:06

标签: excel interop bitmap export openxml

我使用OpenXML框架创建了一个.xlsx文件,我将其嵌入PowerPoint幻灯片(也是使用OpenXML创建),问题是我需要一个占位符图像,用于Excel幻灯片放置在PowerPoint幻灯片上 - 我可以使用标准占位符,但这看起来很糟糕。

所以我希望(最有可能使用Interop)找到打开.xlsx文件并将相关单元格导出为位图(理想情况下为.jpg或.png)的方法,然后我可以将其作为占位符输入到OleObject中图像。

我遇到了这个:http://csharp.net-informations.com/excel/csharp-excel-chart-export.htm

我正在尝试做什么,但在Chart对象上,所以如果有人知道将单元格(理想情况下是选择而不是整个工作表)导出到位图的方法,那就太棒了!

谢谢,

麦克

2 个答案:

答案 0 :(得分:1)

Excel Range对象具有CopyPicture方法,可以执行您要查找的内容。

JP发布了一个VBA示例,您应该为您提供所需的内容。

http://www.jpsoftwaretech.com/export-excel-range-to-a-picture-file/

答案 1 :(得分:0)

如果有人知道将单元格(理想情况下是选择,而不是整个工作表)导出到位图的方法...

带“所有边框”的格式化选择

How can I export from Excel to an image with specific size (or aspect ratio)?学习

Sub ExportExcelSelectionImage()

    exportpath = "C:\Users\nares\Desktop\ExcelScreenShot"
    Set xWs = ActiveWorkbook.ActiveSheet
    Set mySel = Selection

    'Captures current window view
    sView = ActiveWindow.View

    'Sets the current view to normal so there are no "Page X" overlays on the image
    ActiveWindow.View = xlNormalView

    'Temporarily disable screen updating
    Application.ScreenUpdating = False

    mySel.CopyPicture xlPrinter

    Set chartobj = xWs.ChartObjects.Add(0, 0, mySel.Width, mySel.Height)
    chartobj.Activate
    chartobj.Chart.Paste
    chartobj.Chart.Export exportpath & ".png", "png" ' & TimeValue(Now()) & ".png", "png"
    chartobj.Delete

    'Returns to the previous view
    ActiveWindow.View = sView

    'Re-enables screen updating
    Application.ScreenUpdating = True

End Sub

图片>>>>>>>>>>>

enter image description here