如何使用vba Excel 2010从形状中提取exif数据?

时间:2018-09-08 15:25:18

标签: excel vba metadata exif

我正在处理的项目从MySQL数据库中的Blob导入图像。有时,这些图像会旋转90度,用户需要手动将其旋转到正确的方向。

所以我的问题是,有人知道使用vba从Excel中的形状中提取exif数据的功能吗?我正在尝试避免使用任何第三方应用程序。

1 个答案:

答案 0 :(得分:1)

我最终在social.msdn.microsoft.com的肠子里发现了一些东西。

这是解决方案。需要Microsoft Shell控件和自动化参考。感谢social.msdn.microsoft.com上的OssieMac。 Link to page of post

将其指向某个形状似乎不起作用(给我一个错误),但是无论如何我还是将mysql blob保存到PC上的临时文件中,因此无论如何对我来说都是可行的。

Sub ListMetadata()

Dim fileFolder As String
Dim fileName As String
Dim objShell As Shell32.Shell
Dim objFolder As Shell32.Folder
Dim objItem As Shell32.FolderItem
Dim i As Long

'Edit following line to your path. (Note NO back slash on end.)
fileFolder = ThisWorkbook.Path & "\Picture Test"

'Can insert path like following if you prefer.
'fileFolder = "C:\Users\OssieMac\Documents\Excel\Test Macros\Picture Test"

'Edit following line to your file name
fileName = "DSC00093.JPG"

Set objShell = New Shell
Set objFolder = objShell.Namespace(fileFolder)
Set objItem = objFolder.ParseName(fileName)

With objFolder
  For i = 1 To 1000
    Sheets("Sheet1").Cells(i, "A") = .GetDetailsOf(objItem.Name, i)
    Sheets("Sheet1").Cells(i, "B") = .GetDetailsOf(objItem, i)
  Next i
End With

Set objItem = Nothing
Set objFolder = Nothing
Set objShell = Nothing

End Sub