同样是来自Script Lab官方Github库(https://github.com/OfficeDev/script-lab/issues/926)上面用户的提问,大意是,他想在脚本中下载一个远程的csv文件,但总是会报错,所以他怀疑这是否是fetch这个API的问题。.
我测试了一下,他的这个文件是可以在浏览器直接下载的,所以文件本身没有问题。但同样的代码,在我的Script lab中运行也是报告错误。
因为这个文件是放在他的服务器上面,我无法进行排查。所以我将这个文件上传到我自己的azure storage服务中。一开始也是同样报错,然后我想到是不是因为跨站访问的问题呢,进行一顿操作后,果然是这样问题。
下面的代码是能完美工作的,请大家参考
$("#run").click(() => tryCatch(run));
async function run() {
await Excel.run(async (context) => {
await fetch('https://chenxizhang.blob.core.windows.net/public/tbmics.csv', {
headers:{
'Content-Type':"text/csv"
}
}).then(x=>x.text()).then(x=>console.log(x));
});
}
/** 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);
}
}
欢迎大家提交你的需求和问题,我会在后续系列文章中将一些典型需求做成例子,分享代码。