我正在尝试将图片文件响应作为完整图像而不是表单中的 URL 上传到 excel 中。该表单为我提供了可下载的 jpg、jpeg 或 png(如果使用文件转换器)URL。我想尝试获取 jpg、jpeg 或 png 文件(jpg 是最佳模式)并从提供的 URL 以全图形式上传。我有我在办公室脚本中制作的代码,但我收到了无法获取错误。我还尝试使用来自 google 的不可下载的 png 链接,但仍然遇到相同的错误。
async function main(workbook: ExcelScript.Workbook) {
const link = "https://api.typeform.com/responses/files/39ce7d7b9326c7d5f5d9366326d7254ed68fca9be7b02cca7d2550d537037809/f0439ebd2f58_20210706_083619__2___1_.png";
const response = await fetch(link);
const data = await response.arrayBuffer();
const image = convertToBase64(data);
workbook.getActiveWorksheet().addImage(image)
}
function convertToBase64(input: ArrayBuffer){
const uInt8Array = new Uint8Array(input);
const count = uInt8Array.length;
const charCodeArray = new Array(count)
for(let i - count; i >= 0; i--){
charCodeArray[i] = String.fromCharCode(uInt8Array[i]);
}
const base64 = btoa(charCodeArray.join(''));
return base64;
}
我相信此代码仅限于 png 文件,这很麻烦,因为文件必须在第三方网站上从 jpeg 或 jpg 转换为 png。如果代码中还有一种方法可以上传 jpg 或 jpeg,那将不胜感激!
谢谢!