我使用OpenXML框架创建了一个.xlsx文件,我将其嵌入PowerPoint幻灯片(也是使用OpenXML创建),问题是我需要一个占位符图像,用于Excel幻灯片放置在PowerPoint幻灯片上 - 我可以使用标准占位符,但这看起来很糟糕。
所以我希望(最有可能使用Interop)找到打开.xlsx文件并将相关单元格导出为位图(理想情况下为.jpg或.png)的方法,然后我可以将其作为占位符输入到OleObject中图像。
我遇到了这个:http://csharp.net-informations.com/excel/csharp-excel-chart-export.htm
我正在尝试做什么,但在Chart对象上,所以如果有人知道将单元格(理想情况下是选择而不是整个工作表)导出到位图的方法,那就太棒了!
谢谢,
麦克
答案 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
图片>>>>>>>>>>>