【问题标题】:How to extract exif data from shape using vba Excel 2010?如何使用 vba Excel 2010 从形状中提取 exif 数据?
【发布时间】:2018-09-08 15:25:18
【问题描述】:

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

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

【问题讨论】:

    标签: excel vba metadata exif


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2014-12-17
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 2018-04-24
      相关资源
      最近更新 更多