Web API 工作簿下载

亚历克斯

我有一个使用 Microsoft.Office.Interop.Excel 的工作簿。我的问题是这将是一个 API 调用,目前它可以工作但会保存到服务器。有没有办法让它直接下载到客户端并避免服务器端保存。我为 csv 使用了内存流,但这不支持我需要的东西,现在需要使用 excel。

Workbook workbook = new Application().Workbooks.Add();
                var mySheet = (Worksheet)workbook.Worksheets[1];
                var lastRow = mySheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell).Row;
                foreach (var tempResult in violationsResults)
                {
                    lastRow += 1;
                    mySheet.Cells[lastRow, 01] = tempResult.InfractionDate;
                    mySheet.Cells[lastRow, 02] = tempResult.ProductName;
                    mySheet.Cells[lastRow, 03] = tempResult.Sku;
                    mySheet.Cells[lastRow, 04] = tempResult.ProductLine;
                    mySheet.Cells[lastRow, 05] = tempResult.MappPrice;
                    mySheet.Cells[lastRow, 06] = tempResult.AdvertisedPrice;
                    mySheet.Cells[lastRow, 07] = tempResult.Difference;
                    mySheet.Cells[lastRow, 08] = tempResult.SellerDomain;
                    mySheet.Cells[lastRow, 09] = tempResult.Merchant;
                    mySheet.Cells[lastRow, 10] = tempResult.Upc;
                    mySheet.Cells[lastRow, 11] = tempResult.DomainSku;
                    mySheet.Cells[lastRow, 12] = tempResult.Fba;
                    mySheet.Cells[lastRow, 13] = tempResult.Mvid;
                }

                workbook.SaveAs("C:\\Temp\\hello_excel.xlsx");
安德鲁清真寺

从您的临时文件夹中获取一个文件并进行下载,或者使用 MemoryStream 存储您的文件然后下载。

public void DownloadWorkbook(string filePath)
{
    FileInfo file = new FileInfo(filePath);
    HttpResponse response = System.Web.HttpContext.Current.Response;

    response.ClearContent();

    response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
    response.AddHeader("Content-Length", file.Length.ToString());       
    response.ContentType = "text/csv";
    response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
    response.TransmitFile(file.FullName);
    response.End();
}

希望能帮助到你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Web API下载锁定文件

来自分类Dev

使用ASP.net Web API的angular js SPA中的文件下载无法正常工作?

来自分类Dev

Web API从javascript下载xml文件

来自分类Dev

使用HttpClient下载Web API大文件

来自分类Dev

Web API中文件下载的内容协商

来自分类Dev

使用WEB API模拟文件下载

来自分类Dev

使用HttpClient下载Web API大文件

来自分类Dev

在uTorrent Web API上下载目录

来自分类Dev

使用closedxml从web api下载excel文件

来自分类Dev

调用WEB API下载excel文件

来自分类Dev

Web API 2无法正常工作(404)

来自分类Dev

Web api属性标签如何工作

来自分类Dev

REST API或Azure CLI支持用于部署Azure工作簿

来自分类Dev

从Angular JS中的Web API下载csv文件

来自分类Dev

带有Web Api 2的Angular下载csv文件

来自分类Dev

.Net Web API PDF下载不起作用

来自分类Dev

从Web API服务下载pdf文件时出现问题

来自分类Dev

使用Jquery Post使用Web API下载文件

来自分类Dev

为什么Web Api HttpResponseMessage无法下载文件?

来自分类Dev

在.NET Core Web API中下载Excel文件

来自分类Dev

MVC Web Api + Ajax创建和下载Zip文件

来自分类Dev

Maven无法下载Javax的源代码:javaee-web-api

来自分类Dev

从Web API服务下载pdf文件时出现问题

来自分类Dev

使用Jquery Post使用Web API下载文件

来自分类Dev

为什么Web Api HttpResponseMessage无法下载文件?

来自分类Dev

ASP.Net Web Api项目:首选下载位置

来自分类Dev

使用Play Web API下载文件(异步)

来自分类Dev

Angular 2 服务,如何从 Web API 下载 excel

来自分类Dev

Google Drive API下载工作表问题