那些Excel中的脚本:下载CSV文件

同样是来自Script Lab官方Github库(https://github.com/OfficeDev/script-lab/issues/926)上面用户的提问,大意是,他想在脚本中下载一个远程的csv文件,但总是会报错,所以他怀疑这是否是fetch这个API的问题。.那些Excel中的脚本:下载CSV文件

我测试了一下,他的这个文件是可以在浏览器直接下载的,所以文件本身没有问题。但同样的代码,在我的Script lab中运行也是报告错误。

因为这个文件是放在他的服务器上面,我无法进行排查。所以我将这个文件上传到我自己的azure storage服务中。一开始也是同样报错,然后我想到是不是因为跨站访问的问题呢,进行一顿操作后,果然是这样问题。

那些Excel中的脚本:下载CSV文件

下面的代码是能完美工作的,请大家参考

$("#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);  }}

欢迎大家提交你的需求和问题,我会在后续系列文章中将一些典型需求做成例子,分享代码。