Как извлечь exif-данные из фигуры с помощью vba Excel 2010? - PullRequest
0 голосов
/ 08 сентября 2018

Проект, над которым я работаю, импортирует изображения из большого двоичного объекта в базу данных MySQL. Иногда эти изображения поворачиваются на 90 градусов, и пользователь должен вручную повернуть их в правильную ориентацию.

Итак, мой вопрос: кто-нибудь знает о функции, которая извлекает exif-данные из фигуры в Excel с использованием vba? Я пытаюсь избежать любых сторонних приложений, чтобы сделать это.

1 Ответ

0 голосов
/ 09 сентября 2018

В конце концов я обнаружил что-то в недрах соц.msdn.microsoft.com.

Вот решение. Требуется ссылка на Microsoft Shell Controls и Automation. Благодарим OssieMac на сайте social.msdn.microsoft.com. Ссылка на страницу поста

Кажется, что указание на фигуру не работает (выдает ошибку), но я все равно сохраняю свой двоичный файл mysql во временный файл на ПК, так что в любом случае это работает для меня.

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
...