Ebola57 Posted November 13, 2022 Share Posted November 13, 2022 (edited) Hi community I would like to insert a base64 image into an Excel sheet. In fact I would like to avoir external files, so I used base64 image internaly coded I can't figure out how to do it correctly This is the code I tried up to now #include-once #include <Excel.au3> Global $oExcel = _Excel_Open ( False, False, False, True, True ) Global $oWorkbook = _Excel_BookOpen ( $oExcel, @ScriptDir & "\Test Graphic.xlsx", True ) Global $Graphic = _Graphic_Base64_Generator ( "WS-C3750V2-48" ) ; <- My picture base64 encoded With $oWorkbook.Activesheet .Shapes.AddPicture ( @ScriptDir & "\Cisco-3750V2-48.jpg", -1, -1, 0, 0, 300, 30 ) ; <- Works fine, original picture ;.Shapes.AddPicture ( $Graphic, -1, -1, 0, 0, 300, 30 ) ; <- Doewn't work EndWith _Excel_BookSaveAs ( $oWorkbook, @ScriptDir & "\Test Graphic Out.xlsx", Default, True ) _Excel_BookClose ( $oWorkbook, True ) _Excel_Close ( $oExcel, False, True ) Func _Graphic_Base64_Generator ( $sGraphic_Name, $bSaveBinary = False, $sSavePath = @ScriptDir ) Local $sGraphic_Raw = "" Switch $sGraphic_Name Case "WS-C3750V2-48" $sGraphic_Raw &= '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' $sGraphic_Raw &= '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' $sGraphic_Raw &= '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' $sGraphic_Raw &= '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' $sGraphic_Raw &= 'H1XD6X8tf8+cZQTcW8h/p1X6AyRzWLPmg+7wCBGinREUCHQrA5Zo4Mclr5rWVTeccOV5ekFX8MBvFeD0tkWkLJEEjrF7z5ZSl9CbW3hHMItM0sp0mRCHIhYB4BWKaw1H7vZfkouERfbTdaXj0EDOimtETfqnCg3zkxs1oNq7OOphOhyD45H8F6L1jbAJOIdIVBd5eIdLC5RGzhuDnTSlTrkHAFQMTOVqWhL+ghYMUe3zqtS+yFhFP7A2TeTWeDrVQ+ig79vQQlXpltcQF4BDrqxxiTYCGPPX3lQRdUGMhfThHh1IgeVAI2MK3EnGubC5WgBb+n3jPlA7SWkLoGgTr1dBwlGqoFE1Vd5JKp3SDosK/kM49w3WLAOLQfo94PMsiXpdYLorc4o4YwxhrnqKGp3ry54L0kVQmDHh8aaUaTARHmUnzlQssPif0YLRDHB4qDigaJa2EE8fes5M/ASBpKhVa6+Bsu4RkrKwRNF+9+pOHCiEqauRdb+Wv+XTJ+uE2z+58PeFMlSHx+aR+ae9eQYCtc0BGcDfuU/kzzQv8LxU0w2asmqUf4PsQ2a94uGkL+PeZ+qymR+gP/vK3WcIwX2MT9Z84foqs4BE2l/EeAyzJf8ANWqf7S5yHC1xsKxRUfN/MW6QY3Cfs38gJ7zA2DhLJiJOGRl6U5ZUJeUY91AWZi7Mkl63xTV7594SMSUxsmRO+ciII3V2UII/feUG0ACDkYq/x4eTkiwS2qFPWn77yPZUHw0go/GGXbqSDFCP7a/Rc6MmofOkAhOCx7x9da6ASITdL/i6GuJsKtCJX+/x842HRrsEuiLie8DlRCdVR91fPeN08LEyJ6Af7nC7kolYmR1n0R56H9iufQqP/PH0WdSgJLFT5r8xQlfz24qcpqA+8psEkY7TQofPnYOg2kFQq89PNs4nncAE0qaKTP7ybfgbGTS0EL9FHs/RbUAcAAMId75zcXABf62YkQ694fhjKylYLv79bwYIADWCAixihRlf3nFEKPDZl/pnZjW3DuA/+Oy5UlCUBFmX3giVIIf7fB7fOu4NMo/SDXBmvUZhPEvXTDSOHI7EqUNFQKO7yg7CaXEvHGfE4aRAqYVIEBVYYq8fXUGtCphwMfEzoILxiynyYz45kkKE1qgAbud7QGp7vAK113XodAtgA8NTDFmHGU6LIfnt6fOHFXOikGLFL7vFJQHwGgGj4e9eMusOQHhMhnMRYHglAgVokWHPR4CbkRPQnzx/O/h08BgIB/Dk9cZvIeAsAvuHf63Dlci/9dYnatGkeRrgzXqP7pWHqaw03DmwKJVDRQRbyC+hZolomMnnW8+rVtYACrc4F8U6RJlSH1rvBnAkghBu3F96w1T6QhHAAkgTzOAGcDQkMr4cdKd2QRQkLVv0r7vC39Cx4HfSzgjQgG/53//Z' EndSwitch Return Binary ( _Graphic_WinAPI_Base64Decode ( $sGraphic_Raw ) ) EndFunc Func _Graphic_WinAPI_Base64Decode ( $sB64String ) Local $aCrypt = DllCall ( "Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0 ) If @error Or Not $aCrypt [0] Then Return SetError ( 1, 0, "" ) Local $bBuffer = DllStructCreate ( "byte[" & $aCrypt [5] & "]" ) $aCrypt = DllCall ( "Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt [5], "ptr", 0, "ptr", 0 ) If @error Or Not $aCrypt [0] Then Return SetError ( 2, 0, "" ) Return DllStructGetData ( $bBuffer, 1 ) EndFunc Any help appreciated Best regards Edited November 14, 2022 by Ebola57 Link to comment Share on other sites More sharing options...
AndyG Posted November 13, 2022 Share Posted November 13, 2022 Hi, one solution is to copy the base64 graphics into memory( aka clipboard) and insert it into the excel sheet expandcollapse popup#include-once #include <Excel.au3> #include <GDIPlus.au3> #include <Clipboard.au3> _GDIPlus_Startup() FileDelete(@ScriptDir & "\Test Graphic Out.xlsx") ;delete output file Global $Graphic = _Graphic_Base64_Generator("WS-C3750V2-48") ; <- My picture base64 encoded $hClipboard_Bitmap = _GDIPlus_BitmapCreateFromMemory($Graphic, True) ;make bitmap from base64 code $hHBmp_Clipboard = _WinAPI_CopyImage($hClipboard_Bitmap, 0, 0, 0, BitOR($LR_COPYDELETEORG, $LR_COPYRETURNORG)) ;make image from bitmap $ret = _WinAPI_Bitmap2Clipboard($hHBmp_Clipboard) ; copy image to clipboard Global $oExcel = _Excel_Open(False, False, False, True, True) Global $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Test Graphic.xlsx", True) $oWorkbook.Activesheet.Range("D8").activate ;position of picture $oWorkbook.Activesheet.paste ;paste image into excel sheet _Excel_BookSaveAs($oWorkbook, @ScriptDir & "\Test Graphic Out.xlsx", Default, True) _Excel_BookClose($oWorkbook, True) _Excel_Close($oExcel, False, True) ShellExecute(@ScriptDir & "\Test Graphic Out.xlsx") Func _Graphic_Base64_Generator($sGraphic_Name, $bSaveBinary = False, $sSavePath = @ScriptDir) Local $sGraphic_Raw = "" Switch $sGraphic_Name Case "WS-C3750V2-48" $sGraphic_Raw &= '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' $sGraphic_Raw &= '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' $sGraphic_Raw &= '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' $sGraphic_Raw &= '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' $sGraphic_Raw &= 'H1XD6X8tf8+cZQTcW8h/p1X6AyRzWLPmg+7wCBGinREUCHQrA5Zo4Mclr5rWVTeccOV5ekFX8MBvFeD0tkWkLJEEjrF7z5ZSl9CbW3hHMItM0sp0mRCHIhYB4BWKaw1H7vZfkouERfbTdaXj0EDOimtETfqnCg3zkxs1oNq7OOphOhyD45H8F6L1jbAJOIdIVBd5eIdLC5RGzhuDnTSlTrkHAFQMTOVqWhL+ghYMUe3zqtS+yFhFP7A2TeTWeDrVQ+ig79vQQlXpltcQF4BDrqxxiTYCGPPX3lQRdUGMhfThHh1IgeVAI2MK3EnGubC5WgBb+n3jPlA7SWkLoGgTr1dBwlGqoFE1Vd5JKp3SDosK/kM49w3WLAOLQfo94PMsiXpdYLorc4o4YwxhrnqKGp3ry54L0kVQmDHh8aaUaTARHmUnzlQssPif0YLRDHB4qDigaJa2EE8fes5M/ASBpKhVa6+Bsu4RkrKwRNF+9+pOHCiEqauRdb+Wv+XTJ+uE2z+58PeFMlSHx+aR+ae9eQYCtc0BGcDfuU/kzzQv8LxU0w2asmqUf4PsQ2a94uGkL+PeZ+qymR+gP/vK3WcIwX2MT9Z84foqs4BE2l/EeAyzJf8ANWqf7S5yHC1xsKxRUfN/MW6QY3Cfs38gJ7zA2DhLJiJOGRl6U5ZUJeUY91AWZi7Mkl63xTV7594SMSUxsmRO+ciII3V2UII/feUG0ACDkYq/x4eTkiwS2qFPWn77yPZUHw0go/GGXbqSDFCP7a/Rc6MmofOkAhOCx7x9da6ASITdL/i6GuJsKtCJX+/x842HRrsEuiLie8DlRCdVR91fPeN08LEyJ6Af7nC7kolYmR1n0R56H9iufQqP/PH0WdSgJLFT5r8xQlfz24qcpqA+8psEkY7TQofPnYOg2kFQq89PNs4nncAE0qaKTP7ybfgbGTS0EL9FHs/RbUAcAAMId75zcXABf62YkQ694fhjKylYLv79bwYIADWCAixihRlf3nFEKPDZl/pnZjW3DuA/+Oy5UlCUBFmX3giVIIf7fB7fOu4NMo/SDXBmvUZhPEvXTDSOHI7EqUNFQKO7yg7CaXEvHGfE4aRAqYVIEBVYYq8fXUGtCphwMfEzoILxiynyYz45kkKE1qgAbud7QGp7vAK113XodAtgA8NTDFmHGU6LIfnt6fOHFXOikGLFL7vFJQHwGgGj4e9eMusOQHhMhnMRYHglAgVokWHPR4CbkRPQnzx/O/h08BgIB/Dk9cZvIeAsAvuHf63Dlci/9dYnatGkeRrgzXqP7pWHqaw03DmwKJVDRQRbyC+hZolomMnnW8+rVtYACrc4F8U6RJlSH1rvBnAkghBu3F96w1T6QhHAAkgTzOAGcDQkMr4cdKd2QRQkLVv0r7vC39Cx4HfSzgjQgG/53//Z' EndSwitch Return Binary(_Graphic_WinAPI_Base64Decode($sGraphic_Raw)) EndFunc ;==>_Graphic_Base64_Generator Func _Graphic_WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_Graphic_WinAPI_Base64Decode Func _WinAPI_Bitmap2Clipboard($hHBitmap) If Not _ClipBoard_Open(0) Then Return 1 If Not _ClipBoard_Empty() Then Return 2 Local Const $hCP = _ClipBoard_SetDataEx($hHBitmap, $CF_BITMAP) If Not $hCP Or @error Then Return 3 _ClipBoard_Close() Return 0 EndFunc ;==>_WinAPI_Bitmap2Clipboard Musashi, Ebola57 and Danyfirex 3 Link to comment Share on other sites More sharing options...
Nine Posted November 13, 2022 Share Posted November 13, 2022 My first attempt would be to put the image into clipboard (with GDI+) and paste it in an excel sheet... Ebola57 1 “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
AndyG Posted November 13, 2022 Share Posted November 13, 2022 1 minute ago, Nine said: My first attempt would be to put the image into clipboard (with GDI+) and paste it in an excel sheet... ...now we are two at least 😄 Link to comment Share on other sites More sharing options...
Ebola57 Posted November 14, 2022 Author Share Posted November 14, 2022 (edited) Many thanks, your method works flawlessly, but I forgot to mention that this routine is intensively used. I also need to make it as fast as possible The alt way, I found is to write a temp pic. file then delete it (but I dislike it, because of temp file) ; 45 ms method Global $oExcel = _Excel_Open ( False, False, False, True, True ) Global $oWorkbook = _Excel_BookOpen ( $oExcel, @ScriptDir & "\Test Graphic.xlsx", True ) Global $hTimer = TimerInit ( ) Global $sGraphic = _Graphic_Base64_Generator ( "WS-C3750V2-48" ) ; <- My picture base64 encoded FileWrite ( @ScriptDir & "\Toto.jpg", $sGraphic ) With $oWorkbook.Activesheet .Shapes.AddPicture ( @ScriptDir & "\Toto.jpg", -1, -1, 0, 0, 400, 40 ) EndWith FileDelete ( @ScriptDir & "\Toto.jpg" ) ConsoleWrite ( "Méthode 1 : " & Round ( TimerDiff ( $hTimer ), 2 ) & " ms" & @CRLF ) _Excel_BookSaveAs ( $oWorkbook, @ScriptDir & "\Test Graphic Out 1.xlsx", Default, True ) _Excel_BookClose ( $oWorkbook, True ) _Excel_Close ( $oExcel, False, True ) ; 110 ms method _GDIPlus_Startup ( ) Global $oExcel = _Excel_Open ( False, False, False, True, True ) Global $oWorkbook = _Excel_BookOpen ( $oExcel, @ScriptDir & "\Test Graphic.xlsx", True ) Global $hTimer = TimerInit ( ) Global $Graphic = _Graphic_Base64_Generator ( "WS-C3750V2-48" ) Local $hClipboard_Bitmap = _GDIPlus_BitmapCreateFromMemory ( $Graphic, True ) ; Make bitmap from base64 code Local $hHBmp_Clipboard = _WinAPI_CopyImage ( $hClipboard_Bitmap, 0, 0, 0, BitOR ( $LR_COPYDELETEORG, $LR_COPYRETURNORG ) ) ;make image from bitmap $ret = _WinAPI_Bitmap2Clipboard ( $hHBmp_Clipboard ) ; copy image to clipboard With $oWorkbook.Activesheet .Range( "D8" ).Activate ;position of picture .Paste ;paste image into excel sheet EndWith ConsoleWrite ( "Méthode 3 : " & Round ( TimerDiff ( $hTimer ), 2 ) & " ms" & @CRLF ) Do you think there's a way to fasten your method, that is about 120 ms long on my PC ( meaning > 2x longer than with temp. file) ? Edited November 14, 2022 by Ebola57 Link to comment Share on other sites More sharing options...
AndyG Posted November 14, 2022 Share Posted November 14, 2022 2 hours ago, Ebola57 said: Do you think there's a way to fasten your method, that is about 120 ms long on my PC ( meaning > 2x longer than with temp. file) ? Unfortunately not... The "paste" lasts almost 90-100ms on my PC, while the AddPicture-Method runs under 20ms An other advantage of the AddPicture-Method is that you can set the size and rotation of the Picture. Ebola57 1 Link to comment Share on other sites More sharing options...
Ebola57 Posted November 14, 2022 Author Share Posted November 14, 2022 Ok Going to weight with some extended tries what method I will adopt Thank your for your help Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now