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

标签 excel vba metadata exif

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

所以我的问题是,有人知道使用 vba 从 Excel 形状中提取 exif 数据的函数吗?我试图避免任何第三方应用程序执行此操作。

最佳答案

我最终在social.msdn.microsoft.com 的内部发现了一些东西。

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

将它指向一个形状似乎不起作用(给我一个错误),但无论如何我都将我的 mysql blob 保存到电脑上的临时文件中,所以这对我来说无论如何都是可行的。

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

关于excel - 如何使用 vba Excel 2010 从形状中提取 exif 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52236690/

相关文章:

excel - 在 OneDrive 中创建新文件夹

html - 使用 HTML 类名作为元数据

image - 在命令行上从图像中删除所有元数据

excel - 如果单元格值存在于另一列中,则保留行

vba - 检查单元格是否是 Excel 范围的最后一个单元格

excel - 如何删除没有特定标题的列?

excel - 大型数据集 VBA 的 For 循环崩溃

vba - 如何从最新到最旧对列进行排序?

javascript - 在上传期间向 GridFS Meteor FS 文件添加自定义属性

vba - VBA 中的 Workbooks.Open 方法