我正在使用C#和.NET 4.0处理Excel加载项。在Excel中,“另存为”对话框中有一项功能,用于将预览缩略图与文档一起保存。如何在代码中访问此功能?另外,如果保存后我如何访问预览图像(我认为它是位图)?
目前,我的Excel加载项会生成文档的副本,如下所示:
Globals.ThisAddIn.Application.ActiveWorkbook.SaveCopyAs("tempwbcopy");
然后将文档复制到服务器并删除临时文件。基本上我还想制作缩略图,将其发布到服务器,然后删除临时文件。
答案 0 :(得分:1)
我不知道如何以编程方式访问“保存缩略图”功能,但如果您的Excel文件带有缩略图并想要提取图像,则可以使用以下代码(使用OpenXml 2.0 API):
Private Sub ExtractThumbnailAsPng(ByVal pathToExcelFile As String, ByVal outputPath As String)
Dim thumbnailPart As DocumentFormat.OpenXml.Packaging.ThumbnailPart
Using excelFile As SpreadsheetDocument = SpreadsheetDocument.Open(pathToExcelFile, True)
thumbnailPart = excelFile.ThumbnailPart
If thumbnailPart IsNot Nothing Then
Using thumbnailStream As Stream = thumbnailPart.GetStream(FileMode.Open, FileAccess.ReadWrite)
Dim thumbBitmap As New Bitmap(thumbnailStream)
thumbBitmap.Save(outputPath, System.Drawing.Imaging.ImageFormat.Png)
End Using
End If
End Using
End Sub
由于这不是Excel自动化,您也可以执行此服务器端。