mvc文件保存到服务器,mvc后台创建不带保存服务器的excel文件

我有一个问题,我的视图冻结等待我的exportexcel函数结果这个函数是void类型的,在我的动作视图中用参数调用这个函数的功能问题是有时创建的excel文件太大超过500mb,这个文件generatin可能需要一段时间?希望成为我的动作视图不要冻结,用户可以触发另一个exportexcel或可以是f±lter或搜索我的ui,以便可以对th±s±ts my demo project link执行什么操作

https://github.com/nto4/AsyncExcelExport

7PbUg.png

客户端断开连接,请尝试另一个th±nk类型的筛选数据或搜索新数据或导出不同的excel丢失范围,此代码在respose.addheader(“……”)上失败

对于单独运行th±s exportexcel函数和下载没有任何efect的客户端,我的视图thx帮助你是最好的!

这是我的职责

public void ExportToExcel(DateTime? start, DateTime? end)

{

try

{//Downloads tablosuna indirmenin kaydı

Download m = new Download();

DateTime startdate = start ?? new DateTime(2000, 10, 10, 1, 1, 1, 1); ;

DateTime enddate = end ?? DateTime.Now;

DateTime now = DateTime.Now;

m.IsExist = false;

m.CreateDate = now;

m.EndDate = now;

m.StartDate = now;

string name = "Report";

string date = now.ToString("F");

date = date.Replace(" ", "_");

date = date.Replace(",", "_");

string sonu = ".xls";

date += sonu;

name += date;

m.GuidName = name;

db.Downloads.Add(m);

db.SaveChanges();

//Creating Excel

var gv = new GridView();

var temp = db.Transections.ToList();

foreach (var item in temp.ToList())

{

if (item.Date < startdate || item.Date > enddate)

{

temp.Remove(item);

}

}

gv.DataSource = temp;

gv.DataBind();

Response.ClearContent();

Response.Buffer = true;

string attachment = "attachment; filename=";

attachment = attachment + name;

Response.AddHeader("content-disposition", attachment);

Response.ContentType = "application/ms-excel";

Response.Charset = "";

StringWriter objStringWriter = new StringWriter();

HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);

gv.RenderControl(objHtmlTextWriter);

Response.Output.Write(objStringWriter.ToString());

Response.Flush();

Response.End();

//IsExist set True

var bull = db.Downloads.SingleOrDefault(b => b.GuidName == name);

if (bull != null)

{

bull.IsExist = true;

db.SaveChanges();

}

}

catch (Exception ex)

{

Debug.WriteLine(ex);

}

}

public ActionResult Listele(DateTime? dates, DateTime? datee, string submit)

{

var model = db.Transections.ToList();

DateTime startdate = dates ?? new DateTime(2000, 10, 10, 1, 1, 1, 1);

DateTime enddate = datee ?? DateTime.Now; ;

foreach (var item in model.ToList())

{

if (item.Date < startdate || item.Date > enddate)

{

model.Remove(item);

}

}

if (submit == "report")

{

ExportToExcel(dates, datee);

//ExportToExcelasync(dates, datee);

}

return View(model);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值