如何从数组中的变量数据创建并让用户下载 Excel 文件?

How do create and make user download an Excel file from variable data in arrays?

我正在 .NET Core 1.1 中开发一个项目,现在我必须让用户可以下载 Excel 文件,该文件的数据取决于用户选择的参数,所以Excel 应在用户单击 "Export to Excel" 按钮并下载时创建。

我一直在网上搜索,但老实说,我还没有得到任何明确的答案。我想我将不得不使用 Open XML SDK,但是为了在内存中创建它,我没有足够的知识。

总而言之,我有数组中的数据,我希望能够在用户单击按钮的那一刻,使用先前存储在数组中的数据虚拟创建 excel,然后下载它在用户浏览器中。

您还想在下载前显示您的数据吗?也许你可以使用 DataTables:

DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, built upon the foundations of progressive enhancement, that adds all of these advanced features to any HTML table.

Pagination Previous, next and page navigation. Instant search Filter results by text search.

使用 NPOI https://github.com/tonyqus/npoi 符合以下内容:

void safearrayAsExcel(object[,] rows,string filename){
    var workbook = new HSSFWorkbook();
    var sheet = workbook.CreateSheet("New Sheet");

    for(int i = 0; i < rows.length;i++)
    {
        var row sheet.CreateRow(i);
        for(int j = 0; j < row.length;j++)
            row .CreateCell(j).SetCellValue(rows[i,j]);
    }
    FileStream fileOut = new FileStream(fileName, FileMode.Create);
    workbook.Write(fileOut);
}

你当然可以使用内存流而不是文件流,并用生成的 excel

做任何你想做的事

对 xls 格式使用 HSSFWorkbook。和 xlsx 格式的 XSSFWorkbook。

我不完全了解 .net core 1.1 和 .net standard 2.0 的兼容性问题,但应该有办法让它工作