Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este exemplo mostra como trabalhar com imagens através de um Script do Office no Excel.
Cenário
As imagens ajudam na imagem corporativa, identidade visual e modelos. Ajudam a tornar um livro mais do que apenas uma tabela gigante.
O primeiro exemplo copia uma imagem de uma folha de cálculo para outra. Isto pode ser utilizado para colocar o logótipo da sua empresa na mesma posição em cada folha.
O segundo exemplo copia uma imagem de um URL. Isto pode ser utilizado para copiar fotografias que um colega armazenou numa pasta partilhada para um livro relacionado. Tenha em atenção que este exemplo não pode ser adaptado para funcionar com um ficheiro de imagem local, uma vez que não é suportado pelos Scripts do Office.
Configuração: ficheiro do Excel de exemplo
Este livro contém os dados, objetos e formatação esperados pelo script.
Código de exemplo: Copiar uma imagem entre folhas de cálculo
Execute o seguinte script no livro de exemplo e experimente o exemplo! Abra o Editor de Código ao aceder a Automatizar>a Criação de Novo Script>no Editor de Código, substitua o código predefinido pelo código de exemplo que pretende executar e, em seguida, selecione Executar.
/**
* This script transfers an image from one worksheet to another.
*/
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();
return;
}
});
// Copy the image to another worksheet.
image.getShape().copyTo("SecondSheet");
}
Código de exemplo: adicionar uma imagem de um URL a um livro
Importante
Este exemplo não funcionará no Power Automate devido à fetch chamada.
async function main(workbook: ExcelScript.Workbook) {
// Fetch the image from a URL.
const link = "https://raw.githubusercontent.com/OfficeDev/office-scripts-docs/master/docs/images/git-octocat.png";
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.
workbook.getWorksheet("WebSheet").addImage(image);
}
/**
* Converts an ArrayBuffer containing a .png image into a base64-encoded string.
*/
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;
}