I want to create a resource for a browser game and I need to export a ton of character portraits. The url of those portraits is automatically generated with character's id, so you can just load them with =image("url"), like this :

=image(concat("thegame.com/rendern/portraits/", A2, ".png"))

The problem is that it doesn't store loaded images and has to reload them every time, which will probably result in me getting banned.

Is there a way to make it load once and store somewhere? I'm going to access the spreadsheet exclusively through Google Docs.

  • 1
    Welcome. Please add a brief description of your search/research efforts as is suggested on How to Ask. Sep 26, 2019 at 15:49
  • 1
    Also please add more details about what you are expecting, like if you need the file to be available online all the time or if exporting to PDF/ODF/XLSX/HTML will work for you. Sep 26, 2019 at 15:55

1 Answer 1


First, you will not be get banned for using a built-in function like IMAGE(url) as the request is made from Google Servers and it's made anonymously. Anyway, if you want to "freeze" the images on your spreadsheet try the following

  1. Select the range having the IMAGE(url) formulas
  2. Copy
  3. Paste as value only

For the above procedure you could use the contextual menu (right clic), the Edit menu, or the Google Sheets keyboard shortcuts.

  • I think it is incorrect to to say someone can't get banned. Making too many API calls to fetch an image url may end up getting your IP banned from the API. OP has a point to cache the image. This solution, while it does work, isnt dynamic and needs user input to work. Apr 23, 2020 at 22:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.