如何使用Javascript/Jquery/Angular JS打开下载弹出窗口,以便通过Web Api返回Excel数据?
我有下面的web api代码,它将数据返回到excel文件中如何使用Javascript/Jquery/Angular JS打开下载弹出窗口,以便通过Web Api返回Excel数据?,javascript,jquery,angularjs,angular-ui,asp.net-web-api,Javascript,Jquery,Angularjs,Angular Ui,Asp.net Web Api,我有下面的web api代码,它将数据返回到excel文件中 我需要使用导出(打开下载弹出窗口)来导出此数据 JavaScript/JS/Jquery。 我想将数据添加到不同的excel表格中 注意:我不想在服务器上创建excel文件的任何副本,只想向客户端显示下载弹出窗口 Web Api代码片段如下所示- 1) 实体记录 using System; using System.Collections.Generic; using System.Linq; using System.Web; na
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ExcelExport.Models
{
public class Record
{
public string FName { get; set; }
public string LName { get; set; }
public string Address { get; set; }
}
}
2) 控制器-HomeController(URL-http://ServerName:PortNumber/Home/GetExcelData)
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
使用ExportToExcel.Models;
使用系统文本;
命名空间ExportToExcel.Controllers
{
公共类HomeController:控制器
{
[HttpPost]
公共操作结果GetExcelData(int id=0)
{
List obj=新列表();
obj=RecordInfo();
StringBuilder str=新的StringBuilder();
str.Append(“”);
str.Append(“”);
str.Append(“FName”);
str.Append(“LName”);
str.Append(“地址”);
str.Append(“”);
foreach(在obj中记录val)
{
str.Append(“”);
str.Append(“+val.FName.ToString()+”);
str.Append(“+val.LName.ToString()+”);
str.Append(“+val.Address.ToString()+”);
str.Append(“”);
}
str.Append(“”);
HttpContext.Response.AddHeader(“内容处置”,“附件;文件名=信息”+DateTime.Now.Year.ToString()+”.xls”);
this.Response.ContentType=“应用程序/vnd.ms excel”;
byte[]temp=System.Text.Encoding.UTF8.GetBytes(str.ToString());
返回文件(temp,“application/vnd.ms excel”);
}
公共列表记录信息()
{
List recordobj=新列表();
添加(新记录{FName=“Smith”,LName=“Singh”,Address=“Knpur”});
添加(新记录{FName=“John”,LName=“Kumar”,Address=“luknow”});
添加(新记录{FName=“Vikram”,LName=“Kapoor”,Address=“德里”});
添加(新记录{FName=“Tanya”,LName=“Shrma”,Address=“Banaras”});
添加(新记录{FName=“Malini”,LName=“Ahuja”,Address=“Gujrat”});
添加(新记录{FName=“Varun”,LName=“Katiyar”,Address=“Rajasthan”});
添加(新记录{FName=“Arun”,LName=“Singh”,Address=“斋浦尔”});
添加(新记录{FName=“Ram”,LName=“Kapoor”,Address=“Panjab”});
添加(新记录{FName=“Vishakha”,LName=“Singh”,Address=“Banglor”});
添加(新记录{FName=“Tarun”,LName=“Singh”,Address=“Kannauj”});
添加(新记录{FName=“Mayank”,LName=“Dubey”,Address=“Farrukhabad”});
返回记录对象;
}
}
}
问题是什么?如果您想在CSV之外创建工作表和更高级的函数,需要添加对Excel对象库dll的引用。然后使用新建工作表()
等。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ExportToExcel.Models;
using System.Text;
namespace ExportToExcel.Controllers
{
public class HomeController : Controller
{
[HttpPost]
public ActionResult GetExcelData(int id = 0)
{
List<Record> obj = new List<Record>();
obj = RecordInfo();
StringBuilder str = new StringBuilder();
str.Append("<table border=`" + "1px" + "`b>");
str.Append("<tr>");
str.Append("<td><b><font face=Arial Narrow size=3>FName</font></b></td>");
str.Append("<td><b><font face=Arial Narrow size=3>LName</font></b></td>");
str.Append("<td><b><font face=Arial Narrow size=3>Address</font></b></td>");
str.Append("</tr>");
foreach (Record val in obj)
{
str.Append("<tr>");
str.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + val.FName.ToString() + "</font></td>");
str.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + val.LName.ToString() + "</font></td>");
str.Append("<td><font face=Arial Narrow size=" + "14px" + ">" + val.Address.ToString() + "</font></td>");
str.Append("</tr>");
}
str.Append("</table>");
HttpContext.Response.AddHeader("content-disposition", "attachment; filename=Information" + DateTime.Now.Year.ToString() + ".xls");
this.Response.ContentType = "application/vnd.ms-excel";
byte[] temp = System.Text.Encoding.UTF8.GetBytes(str.ToString());
return File(temp, "application/vnd.ms-excel");
}
public List<Record> RecordInfo()
{
List<Record> recordobj = new List<Record>();
recordobj.Add(new Record { FName = "Smith", LName = "Singh", Address = "Knpur" });
recordobj.Add(new Record { FName = "John", LName = "Kumar", Address = "Lucknow" });
recordobj.Add(new Record { FName = "Vikram", LName = "Kapoor", Address = "Delhi" });
recordobj.Add(new Record { FName = "Tanya", LName = "Shrma", Address = "Banaras" });
recordobj.Add(new Record { FName = "Malini", LName = "Ahuja", Address = "Gujrat" });
recordobj.Add(new Record { FName = "Varun", LName = "Katiyar", Address = "Rajasthan" });
recordobj.Add(new Record { FName = "Arun ", LName = "Singh", Address = "Jaipur" });
recordobj.Add(new Record { FName = "Ram", LName = "Kapoor", Address = "Panjab" });
recordobj.Add(new Record { FName = "Vishakha", LName = "Singh", Address = "Banglor" });
recordobj.Add(new Record { FName = "Tarun", LName = "Singh", Address = "Kannauj" });
recordobj.Add(new Record { FName = "Mayank", LName = "Dubey", Address = "Farrukhabad" });
return recordobj;
}
}
}