Last active
September 6, 2022 00:57
-
-
Save chenxizhang/fce59570016af45c0ca6d075a3edf2b3 to your computer and use it in GitHub Desktop.
读取网络图片,并且解析,然后写到工作表中
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 读取远程图片并插入文档 | |
description: 读取网络图片,并且解析,然后写到工作表中 | |
host: EXCEL | |
api_set: {} | |
script: | |
content: | | |
$("#run").click(() => tryCatch(run)); | |
async function run() { | |
await Excel.run(async (context) => { | |
const sheet = context.workbook.worksheets.getActiveWorksheet(); | |
const url = "https://img2.looper.com/img/gallery/things-only-adults-notice-in-kung-fu-panda/l-intro-1600295926.jpg"; | |
const buffer = await fetch(url).then((x) => x.arrayBuffer()); | |
const picture = sheet.shapes.addImage(convertToBase64(buffer)); | |
picture.top = 10; | |
picture.left = 10; | |
picture.width = 300; | |
picture.height = 200; | |
await context.sync(); | |
}); | |
} | |
/** Default helper for invoking an action and handling errors. */ | |
async function tryCatch(callback) { | |
try { | |
await callback(); | |
} catch (error) { | |
// Note: In a production add-in, you'd want to notify the user through your add-in's UI. | |
console.error(error); | |
} | |
} | |
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; | |
} | |
language: typescript | |
template: | |
content: | | |
<button id="run" class="ms-Button"> | |
<span class="ms-Button-label">Run</span> | |
</button> | |
language: html | |
style: | |
content: |- | |
section.samples { | |
margin-top: 20px; | |
} | |
section.samples .ms-Button, section.setup .ms-Button { | |
display: block; | |
margin-bottom: 5px; | |
margin-left: 20px; | |
min-width: 80px; | |
} | |
language: css | |
libraries: | | |
https://appsforoffice.microsoft.com/lib/1/hosted/office.js | |
@types/office-js | |
office-ui-fabric-js@1.4.0/dist/css/fabric.min.css | |
office-ui-fabric-js@1.4.0/dist/css/fabric.components.min.css | |
core-js@2.4.1/client/core.min.js | |
@types/core-js | |
jquery@3.1.1 | |
@types/jquery@3.3.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment