如何在C#blazor中下载xls文件

问题描述

我发现了这段视频,该视频演示了如何在我的应用Download XLSX file Blazor中下载xlsx文件

简而言之,我们使用JS帮助程序完成工作。

//cs file
            iJSRuntime.InvokeAsync<ToSheetConvert>(
                    "saveAsFile","myfile.xlsx",Convert.ToBase64String(fileContents)
                );


//saveAsFile.js file   
    function saveAsFile(fileName,byteBase64) {
    var link = document.createElement('a');
    link.download = fileName;
    link.href = 'data:application/vnd.openxmlformats-pfficedocument.spreadsheetml.sheet;base64,' + byteBase64;
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);

我的问题是,这不适用于旧版本的excel文件,例如.xls,.cvs 我认为问题来自 link.href ,对于这些扩展名文件来说这是不正确的...另外也不知道要放哪一个扩展名... 需要在blazor中下载xls和csv文件

当我尝试打开下载的文件时,出现办公室错误消息 Screen KO xls 在这里,当我通过仅更改cs文件Screen KO xls csfileChange

中的扩展名来强制执行此操作时

解决方法

您可以使用以下替换href链接,该链接应适用于所有文件类型:

link.href = "data:application/octet-stream;base64," + bytesBase64;