5 Simple Ways to Insert Google Sheets Images

Let’s talk about how to insert an image in a cell in Google Sheets. After all, that’s a common practice when you work with data. I’ll show you exactly how to add Google Sheets images below. I’ll include photos, videos, and step-by-step instructions.

Note that I regularly use this process to add images to Google Sheets. And I’m happy to share my experience.

You will be quite surprised to know that Google Sheets makes it really easy to add images in a cell quite easily. There are a couple of methods you can use to insert an image in Google, such as:

  • Inserting images using the Google Sheets Image in Cell option
  • Inserting images to Google Sheets using Drawing
  • Adding an image to Google Sheets using the IMAGE Formula
  • Inserting images in Google Sheets with Dynamic Image Lookup Functionality
  • Adding images using Cellmage Builder API in App Scripts

I’ll show you all these methods and, by the end, you’ll know how to insert images in Google Sheets.

Insert an Image Using the Google Sheets Image in Cell Option

As promised, I have a full video on inserting images into Google Sheets. It gives a thorough walkthrough of the process.

[adthrive-in-post-video-player video-id=”zGcYNmya” upload-date=”2021-06-26T01:00:00.000Z” name=”How to Insert an Image in a Cell in Google Sheets” description=”In this video, I demonstrate how to insert an image in a cell in Google Sheets. My method includes practical examples in my own spreadsheet.” player-type=”default” override-embed=”default”]

Let’s talk about the easiest method first. Basically, Google Sheets insert image in a cell is the simplest option.

You can find it in the “insert” menu on top of your screen, as soon as you open any sheet. Let’s see what that looks like.

Follow these steps to insert a Google spreadsheet image in a cell:

  1. Select the cell in which you want to insert the image in a cell in Google Sheets
  2. Click the Insert option in the menu
  3. Hover the cursor over the Image option
  4. Click on the ‘Image in cell’ option
  5. In the Insert Image dialog box, select the option through which you want to insert the image. You can upload an image file, take a snapshot and insert that, use a URL to insert the image, use your albums/Google Drive to insert the image or search and then insert it. In this example, I will use the URL to insert the image
  6. Enter the image URL from which you want to insert the image in the cell
  7. Click on Select.

The above steps would insert the specified image in the selected cell.

Note that the image inserted using this method is placed in the cell, and it moves and sizes with the cell. Also, if you hide the cell or filter it, the image would stick to the cell and would also get hidden/filtered.

There is also an option to insert an image over the cells. This will place the image as an object over the cells, and you would have to manually fit it within a cell by sizing and moving it. Also, when you place an image over the cells, it won’t move and size with the cell. If you move the row/column or hide it, the image will not follow suit.

Insert Google Sheets Image Using Drawing

You can also add images in Google Sheets using the drawing option. This method is similar to the insert image method. The only difference is that there’s no option to add an image to a cell.

Here’s how to insert an image using the drawing option:

  1. Click Insert, then Drawing.

  1. Click the image icon, and an insert image window will appear.

  1. Select the method you wish to use to add the image. You can upload an image file from your device or drag and drop it into the space. You can also use your image URL or upload the image from your Google drive.

  1. In this case, we used “by URL”. Enter your image URL and click select if you are satisfied with your chosen image.

  1. Once you have uploaded your image file, you can edit it or add a text box or shapes to it.

  1. When you are done editing the image, click save and close.

The image will appear above the cells, and you can resize it and move it around the page. In case you add a text box to the image it will be part of the image and you can’t move it or edit it independently.

Advantages of Using Drawing

The advantage of this method is that you can edit your image in several different ways.

  • You can add a border and change its shape and size
  • You can add other shapes to the image, like arrows, circles, or lines
  • You can add multiple images and make them into one image.

Anything you add to the image in the drawing edit tab will be part of the image once you click save and close. This means that if you resize or move your image, it will also affect everything else.

If you want to edit it, you can double-click the image, and it will take you back to the drawing edit tab.

How to Add an Image to Google Sheets Using the IMAGE Formula

Yes, there is a formula that you can use to add an image to a cell in Google Sheets.

Through the IMAGE formula, you can easily start the process of adding a picture in their preferred cell and changing its aspect ratio.

Syntax of the IMAGE function:

IMAGE (URL, [mode], [height], [width])

  • URL: The link of the image should be included with an HTTPS or HTTP for it to work. It should also be surrounded by double quotes if you’re entering it as text only. You can even refer to a cell that has the URL of your image already.
  • [mode] The mode is 1 by default, but you can switch it up. It is entirely up to the user to decide the image size which comes in four sizes.
    • Size 1 simply just changes the size of the image to fit in easily inside the cell.
    • Size 2 compresses or stretches your picture so that it can easily fit in the cell.
    • Size 3 will crop the image so that it fits in the cell without changing the size of the image.
    • Size 4 allows the user to choose the size (height/width) of the image.
  • [height]: The height option simply indicates how long the picture should be to stay inside the cell and also be completely visible. If you want to use height, make sure your mode is 4.
  • [width]: To use the width parameter, once again, your mode should be 4; otherwise, your whole image formula will result in an error. The width option lets the user define how wide the picture should be to stay completely visible in the cell.

Now that you know the syntax of the image function, let’s see some examples of how you can use it to insert an image in a cell in Google Sheets.

In this entire tutorial, I will be using the following image URL of the logo of Google to show you how to use the IMAGE function in Google Sheets:

https://www.Google.com/images/branding/Googlelogo/1x/Googlelogo_color_272x92dp.png

This image URL has been taken from the homepage of Google (source: https://www.Google.com/)

Now let’s have a look at some examples.

To insert an image in a cell using the above URL, I can use the below formula in Google Sheets:

=IMAGE(“https://www.Google.com/images/branding/Googlelogo/1x/Googlelogo_color_272x92dp.png”)

The above formula gives the result as shown below:

Since I have not provided any of the optional arguments, it will insert the image and fit the image into the cell.

Now let’s go through all the modes you can use in the IMAGE function and how it will impact the result.

When Mode is 1 – Image Resizes to Fit the Cell Size

SYNTAX:

= IMAGE (URL,1, [HEIGHT], [WIDTH])

The result you get when the mode is specified as 1 would be the same as you get when you don’t specify any mode value.

In this mode, the image is resized to fit the cell. And if you change the size of the cell, the image would also resize.

When Mode is 2 – Image Stretches to Fit the cell

SYNTAX:

= IMAGE (URL, 2)

When you specify the mode as 2, the image would stretch (in height as well as width) to fit the cell (as shown below).

In this case, the aspect ratio is not maintained and you may end up getting an image that completely fits the cell.

When Mode is 3 – Image Displayed at Original Size

SYNTAX:

= IMAGE (URL,3)

When you specify the mode as 3, the image would be displayed in its original size.

In case the cell height/width are not large enough to accommodate the image, the image would be cropped. And in case the size of the cell is larger than the image size, you will have empty white spaces in the cell (around the image).

When Mode is 4 – Displays the image with the specified Height/Width

SYNTAX:

= IMAGE (URL,4, [HEIGHT], [WIDTH])

When you specify the mode as 4, you also need to specify the height and width of the image in the cell (in pixels). For example, the below formula will insert the Google logo in a cell and make the size as 50 as height and 50 as width.

=IMAGE(“https://www.Google.com/images/branding/Googlelogo/1x/Googlelogo_color_272x92dp.png”,4,50,50)

You can repeat this process in other cells using a repeat formula. We have a tutorial for you on 6 ways to use the repeat formula.

Benefits of Using the IMAGE Function

There are a couple of benefits of using the IMAGE function over inserting the image using the ‘Image in Cell’ functionality:

  1. The IMAGE function allows a lot more flexibility than the ‘Image in cell’ option. You can choose from four different modes that allow you to choose whether you want the image to fit perfectly, stretch and fill the cell, or remain at a specific aspect ratio.
  2. IMAGE function can take a cell reference as the input (where the cell reference has the URL to the image). This makes it dynamic, meaning that if you change the URL in the reference cell, the image will automatically update. Also, if you have 10 image URLs in a column, you can easily use the IMAGE function to get the images quickly for all 10 image links.

How to Insert Image in Google Sheets With Dynamic Image Lookup Functionality

Since the IMAGE function can easily update when you change the image URL, you can use this to create an image lookup (picture lookup) functionality in Google Sheets.

Something as shown below:

In the above example, as soon as I select a company name, that company’s logo automatically updates in the adjacent cell. This is made possible using the IMAGE function (along with the VLOOKUP function).

Below are the steps I have used to create this picture lookup in Google Sheets:

  1. Have the company names and the image links in a sheet in Google Sheets. This could be on the same sheet where you want the picture lookup or could be on a different sheet. In this example, I have these names and logos in a sheet named – ‘Image Links’

  1. Create a drop-down list in the sheet where you want the picture lookup to work. For this drop-down, use the company names so that these same names appear in the drop-down.

  1. In the adjacent cell, use the following formula to fetch the URL for the company logo. This fetched URL is used in the IMAGE function to insert the image of that fetched URL. Since this is connected to the drop-down value, when you change the value, the logo also changes:

=IMAGE(VLOOKUP(A1,’Image Links’!$A$2:$B$6,2,0))

This could be useful when you’re creating a dashboard and you want an image to appear based on the selection from the drop-down.

If you have a large document and want to add images you can jump to cells to do so.

Related Reading: Save a Chart as an Image in Google Sheets

How to Insert Google Sheets Images Using Cellmage Builder

This last method is for the tech nerds who like to code and use Google App Script to automate tasks in Google Sheets. Previously you could only add an image over the cells in scripts, but with Cellmage, you can insert images in a cell.

  1. On your Google Sheets, go to extension and click App Scripts

  1. This will take you to a new window for APP Script with a file saved as code.gs. You can erase the function there.

  1. First, we are going to create a menu to automatically add the image. Create an onOpen function

  1. Name your menu in the brackets, in this case, I named mine “Image Automate”
  2. Next, addItem Insert Image and add toUi.
  3. Save the function, then click Run. Here’s what the code should look like:

  1. If you go back to your spreadsheet, you will find the new menu “Image Automate

  1. Now we will add a new function for inserting the cell image.

  1. We will then create a constant sheet.
  2. We need to tell the script where to find the image url.
  3. After that we need to tell the script which cell or cells to put the image in.
  4. Now we need to build the value for the image URL.
  5. Finally, we set the image range to tell the image to go to the right cell.

This is the final script you should have:

  1. Now just get your image URL and paste it into cell A1,

  1. Once you’re done, save the function then run it. You might be asked for authorization in which case you can just allow it.

  1. Go back to your Google Sheets and click the menu Image Automate, then click Insert image.

Your image should appear in the cell you designated it to.

The Cellmage API is a fairly new feature in App Script that lets you insert images into cells and also lets you automate the process.

Frequently Asked Questions

Can I Insert an Image in a Spreadsheet Cell? Can You Put Images in Google Sheets?

You can use any of the methods we mentioned to do this.

  • Through the insert menu
  • With the IMAGE formula
  • With dynamic lookup and the IMAGE formula

How Do I Lock an Image in Google Sheets?

You have to use the same method as locking a cell for any other reason. Right-click the cell and use the Protect range option.

How Do I Make an Image a Link in Google Sheets?

  1. Click on the image in the cell, the Image option box should pop up
  2. Click Change link and paste in the URL you want to direct to

How Do I View an Image in a Cell?

To view a full-size image from a cell, you can right-click and then select Put image over cells. When you’re done, use the undo shortcut (Ctrl+z) to return it back to the way it was.

Can You Paste Images Into Google Sheets?

Yes, but not just by using Ctrl+V. You have to Insert the image instead.

Can You Put an Image Behind Cells in Google Sheets?

There are only two options for image placement in Google Sheets; to place the image in the cell or over the cell. You cannot put an image behind a cell in Google Sheets.

Can I Have an Image and Text in a Cell in Google Sheets?

No, once you put an image in a cell in Google Sheets, you can’t add text to that cell. You can add a text box to an image that is not in a cell in Google Sheets using the drawing method. There are also other ways to insert a text box in Google Sheets.

The Bottom Line

Whichever method you use for inserting Google Sheets images, you should now easily be able to place images into your spreadsheet with ease. If you found this tutorial helpful, please share it as a resource with your coworkers or check out my other tutorials below.

Other relevant Google Sheets tutorials:

Most Popular Posts

15 thoughts on “5 Simple Ways to Insert Google Sheets Images”

  1. Nice. THanks for the info.
    Is there any way to insert the image, and have it automatically display the image, from a google form? Right now the google results sheet page only displays the image link, but not the image itself.

    Reply
    • Google Forms doesn’t provide a built-in feature to directly display images in the associated Google Sheets for responses. That said, you could use Google App Script to include them in the Google Sheets response workbook.

      Reply
  2. I use the Appscript to trigger and its will convert the google sheet to PDF and email to the user straightaway. But the problem is at thecell with contain =image() ,the image turn up only half at PDF from the original at google sheet.

    I believe it cause the image huge in size. How to compress ? or any other ideas?

    Reply
      • Maybe try a workaround? You could try fetching the images separately, resizing them, and then embedding them in the PDF. Here’s what an app script would look like for that:

        function convertSheetToPDFAndEmail() {
        var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
        var sheet = spreadsheet.getSheetByName('YourSheetName'); // Replace 'YourSheetName' with the actual sheet name
        var range = sheet.getDataRange();
        var data = range.getValues();
        var urlColumnIndex = 1; // Adjust this to the column index where image URLs are located

        // Fetch all image URLs
        var imageUrls = [];
        for (var i = 1; i < data.length; i++) { var imageUrl = data[i][urlColumnIndex - 1]; // Adjust to 0-based index imageUrls.push(imageUrl); } // Create a temporary folder var folder = DriveApp.createFolder('TempFolder'); // Fetch and resize images var images = []; for (var i = 0; i < imageUrls.length; i++) { var imageUrl = imageUrls[i]; var imageBlob = UrlFetchApp.fetch(imageUrl).getBlob(); var resizedBlob = resizeImage(imageBlob, 200, 200); // Adjust the width and height as needed var imageFile = folder.createFile(resizedBlob); images.push(imageFile.getBlob()); } // Create a temporary sheet for PDF conversion var tempSheet = spreadsheet.insertSheet('TempSheet'); tempSheet.getRange(1, 1, data.length, data[0].length).setValues(data); // Insert resized images into the temporary sheet for (var i = 0; i < images.length; i++) { tempSheet.insertImage(images[i], 1, urlColumnIndex + i); // Adjust column index } // Convert the temporary sheet to PDF var pdf = folder.createFile(tempSheet.getAs('application/pdf').getBytes()); // Email the PDF to the user MailApp.sendEmail({ to: 'user@example.com', // Replace with the recipient's email address subject: 'PDF with Images', body: 'Please find the attached PDF.', attachments: [pdf] }); // Clean up: Delete the temporary folder and sheet folder.setTrashed(true); spreadsheet.deleteSheet(tempSheet); } function resizeImage(blob, width, height) { var base64 = Utilities.base64Encode(blob.getBytes()); var resizedBase64 = Utilities.base64EncodeWebSafe(Utilities.newBlob(Utilities.base64DecodeWebSafe(base64)).getResize(width, height).getBytes()); return Utilities.newBlob(Utilities.base64DecodeWebSafe(resizedBase64)); }

        Reply
  3. the app script is really useful thanks.
    however, how do i import huge amount of images with the app?
    in the example there is only 1 image at A1 but how do I do if I have like 100~urls?
    thanks for sharing

    Reply
    • If you have a large number of image URLs to import and embed into your Google Sheets and PDF, you can modify the script to handle multiple images in a more automated way. Here’s an updated version of the script that can handle a dynamic number of images:

      function convertSheetToPDFAndEmail() {
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = spreadsheet.getSheetByName('YourSheetName'); // Replace 'YourSheetName' with the actual sheet name
      var range = sheet.getDataRange();
      var data = range.getValues();
      var urlColumnIndex = 1; // Adjust this to the column index where image URLs are located

      // Fetch all image URLs
      var imageUrls = [];
      for (var i = 1; i < data.length; i++) { var imageUrl = data[i][urlColumnIndex - 1]; // Adjust to 0-based index imageUrls.push(imageUrl); } // Create a temporary folder var folder = DriveApp.createFolder('TempFolder'); // Fetch and resize images var images = []; for (var i = 0; i < imageUrls.length; i++) { var imageUrl = imageUrls[i]; var imageBlob = UrlFetchApp.fetch(imageUrl).getBlob(); var resizedBlob = resizeImage(imageBlob, 200, 200); // Adjust the width and height as needed var imageFile = folder.createFile(resizedBlob); images.push(imageFile.getBlob()); } // Create a temporary sheet for PDF conversion var tempSheet = spreadsheet.insertSheet('TempSheet'); tempSheet.getRange(1, 1, data.length, data[0].length).setValues(data); // Insert resized images into the temporary sheet for (var i = 0; i < images.length; i++) { tempSheet.insertImage(images[i], 1, data.length + i + 1); // Adjust column index } // Convert the temporary sheet to PDF var pdf = folder.createFile(tempSheet.getAs('application/pdf').getBytes()); // Email the PDF to the user MailApp.sendEmail({ to: 'user@example.com', // Replace with the recipient's email address subject: 'PDF with Images', body: 'Please find the attached PDF.', attachments: [pdf] }); // Clean up: Delete the temporary folder and sheet folder.setTrashed(true); spreadsheet.deleteSheet(tempSheet); } function resizeImage(blob, width, height) { var base64 = Utilities.base64Encode(blob.getBytes()); var resizedBase64 = Utilities.base64EncodeWebSafe(Utilities.newBlob(Utilities.base64DecodeWebSafe(base64)).getResize(width, height).getBytes()); return Utilities.new

      Reply
  4. Hello! Wonderful tips. Thank you!
    I have just a problem with the AppScript. After all the eaxct steps, I see this error

    ReferenceError: sheetRange is not defined

    But I inserted exactly A1 and A5 as the script… Is there some workaround?
    Thank you very much in advance.

    Reply
    • That usually means the variable sheetRange is not declared or defined before it’s used in your script. You might try something like this:
      function insertImage() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

      // Define the range where you want to insert the image (e.g., A1)
      var sheetRange = sheet.getRange('A1');

      // Insert the image URL
      var imageUrl = 'YourImageURL';
      sheetRange.setFormula('=IMAGE("' + imageUrl + '")');
      }

      Here, ‘yourimageurl’ should be replaced with your image’s URL.

      Reply
  5. I get an error for the Apps Script and it’s unknown so I have no idea what the problem is.

    why did you use pictures when you could have just typed it out so others could copy/paste it into the field?

    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Related Posts

Thanks for visiting! We’re happy to answer your spreadsheet questions. We specialize in formulas for Google Sheets, our own spreadsheet templates, and time-saving Excel tips.

Note that we’re supported by our audience. When you purchase through links on our site, we may earn commission at no extra cost to you.

Like what we do? Share this article!