I have a Google spreadsheet where a column contains the string that corresponds to an image in Base64. For example: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYโฆ
How can I convert this back to an image link so that App sheet can display the image?
Solved! Go to Solution.
Great, this information is helping a lot.
I got it working and now I need to work on the trigger function.
The working script is below:
function myFunction() {
var imgFolder = DriveApp.getFolderById(โIMAGE FOLDER URLโ); //id string from URL of image folder
var sheetName = โNAME OF SHEETโ; //name of sheet to write results
var imgCol = 12 // column containing image path/filename for my case in particular
var imgStringCol = 11 // column with Base64 string for my case in particular
var dateStringCol = 9 //column with date and time for my case in particular
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var lastRow = sheet.getLastRow();
if (sheet.getRange(lastRow, imgCol).getValue()==""){ // THIS WILL CHECK IF THE IMAGE ALREADY HAS A LINK OR NOT
var filename = sheet.getRange(lastRow, dateStringCol).getValue(); //I AM MAKING THE IMAGE NAME EQUAL TO THE DATE AND TIME TAKEN
var filenamereplace = filename.replace(":", "-"); // I AM REMOVING SEMICOLON FROM THE FILE NAME OTHERWISE APPSHEET WILL NOT RECOGNIZE THE FILE
var filenamereplace2 = filenamereplace.replace(":", "-"); // I AM REMOVING A SENCOND SEMICOLON IN MY PARTICULAR CASE
var filenamereplace3 = filenamereplace2 + ".jpg"; // ADDING THE CORRECT FILE FORMAT TO THE NAME
var base64 = sheet.getRange(lastRow, imgStringCol).getValue();
try{
var decoded = Utilities.base64Decode(base64);
var blob = Utilities.newBlob(decoded, MimeType.JPEG, filenamereplace3);
imgFolder.createFile(blob);
var imgPath = "Placas/" + filenamereplace3 // PLACAS IS THE FOLDER NAME WHERE I AM STORING THE IMAGES
sheet.getRange(lastRow, imgCol).setValue(imgPath); // PUTTING THE FILENAME IN THE APPROPIATE COLUMN
}catch(err){Logger.log(err)}
}
Logger.log(โendโ);
}
User | Count |
---|---|
43 | |
27 | |
24 | |
22 | |
13 |