Copy an image across worksheets

function main(workbook: ExcelScript.Workbook) 
  // Get the worksheet with the image on it.
  let firstWorksheet = workbook.getWorksheet("FirstSheet");

  // Get the first image from the worksheet.
  // If a script added the image, you could add a name to make it easier to find.
  let image: ExcelScript.Image;
  firstWorksheet.getShapes().forEach((shape, index) => {
    if (shape.getType() === ExcelScript.ShapeType.image) {
      image = shape.getImage();

  // Copy the image to another worksheet.

Add an image from a URL to a workbook

async function main(workbook: ExcelScript.Workbook) { 
  // Fetch the image from a URL.
  const link = "";
  const response = await fetch(link);

  // Store the response as an ArrayBuffer, since it is a raw image file.
  const data = await response.arrayBuffer();

  // Convert the image data into a base64-encoded string.
  const image = convertToBase64(data);

  // Add the image to a worksheet.

function convertToBase64(input: ArrayBuffer) { 
  const uInt8Array = new Uint8Array(input);
  const count = uInt8Array.length;

  // Allocate the necessary space up front.
  const charCodeArray = new Array(count) as string[];
  // Convert every entry in the array to a character.
  for (let i = count; i >= 0; i--) {
    charCodeArray[i] = String.fromCharCode(uInt8Array[i]);

  // Convert the characters to base64.
  const base64 = btoa(charCodeArray.join(''));
  return base64;

© 2022 Better Solutions Limited. All Rights Reserved. © 2022 Better Solutions Limited TopPrevNext