首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#中的内存流下载excel文件

使用C#中的内存流下载excel文件
EN

Stack Overflow用户
提问于 2021-01-29 04:49:21
回答 1查看 1.5K关注 0票数 0

我必须通过从内存流创建excel工作簿来返回文件。我已经使用了Interop,closed.xml,spire.xls,但没有创建一个方法来实现同样的目标。

代码语言:javascript
复制
    var stream=clsUploadHelper.GetAttachmentFileStream(string.Empty, Filename);
Workbook book=new Workbook();
book.worksheet.Add(stream);
                            stream.Position = 0;
                            string xmlString = "attachment;filename=" + Filename;
                            return File(stream, xmlString, Filename);

我是新来的,如果可能的话,请帮忙。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-01-02 22:39:57

可能要迟到了,但我今天遇到了这个问题,我编写了这个POC,以便在.NET Core中使用Spire.XLS返回一个XLSX文件

代码语言:javascript
复制
    [HttpPost]
    public async Task<FileResult> Post()
    {
        try
        {

            var workbook = new Workbook();
            var sheet = workbook.Worksheets[0];

            sheet.InsertRow(1);
            sheet.Rows[0].Columns[0].Value = "testing...";

            await using var stream = new MemoryStream();
            workbook.SaveToStream(stream, Spire.Xls.FileFormat.Version2016);

            const string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            HttpContext.Response.ContentType = contentType;
            HttpContext.Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");

            var fileContentResult = new FileContentResult(stream.ToArray(), contentType)
            {
                FileDownloadName = $"test.xlsx"
            };

            return fileContentResult;
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            return null;
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65948940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档