在后台创建一个Excel文件,然后通过电子邮件发送给用户

时间:2018-01-31 14:16:28

标签: c# asp.net

我有一个用ASP.NET 4.0编写的内部网应用程序,可以生成Excel报告。某些报告最多可能需要2分钟才能创建。

这里的问题是用户在等待报告完成时无法继续工作。

我想做的是:

  1. 用户要求服务器生成报告
  2. Ther服务器启动报告并输出一条消息说明 报告将在准备好后通过电子邮件发送给他。
  3. 当服务器正在处理报告时,用户可以继续 使用内联网
  4. 当报告准备就绪时,服务器将Excel文件保存在 文件夹和电子邮件指向该文件的链接
  5. 要清楚,我知道如何从.NET代码生成Excel文件。我不知道该怎么做就是在后台创建它。

    我该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为您的方案的最佳解决方案是使用AJAX调用。

  1. 在ASP.NET上创建WEBAPI方法以生成Excel文件并通过电子邮件发送给用户

    [HttpGet]
    public void CreateExcelFile( )
    {
       1.create report
       2.save to disk
       3.call private method to attach the file to email message and send to recipient
    
    }
    
  2. 在您的应用程序网页中调用该方法

    $.ajax({
    method: "GET",
    url: "./api/yourcontroller/CreateExcelFile",
    
    })
    .done(function (msg) {
     //do something ???
    }).error(function (xhr, ajaxOptions, thrownError) {
     //catch error if any
    });
    
  3. 本质上AJAX是异步的。这样您的用户就可以继续使用您的应用程序了。如果您正在寻找一个好的Excel创建库,我建议EPPlus上提供Nuget。它是免费且非常强大的产品