Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript/Jquery/Angular JS打开下载弹出窗口,以便通过Web Api返回Excel数据?_Javascript_Jquery_Angularjs_Angular Ui_Asp.net Web Api - Fatal编程技术网

如何使用Javascript/Jquery/Angular JS打开下载弹出窗口,以便通过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

我有下面的web api代码,它将数据返回到excel文件中

  • 我需要使用导出(打开下载弹出窗口)来导出此数据 JavaScript/JS/Jquery。

  • 我想将数据添加到不同的excel表格中

  • 注意:我不想在服务器上创建excel文件的任何副本,只想向客户端显示下载弹出窗口

    Web Api代码片段如下所示- 1) 实体记录

    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;
            }
        }
    }