Member 10028394 Ответов: 1

Скачать файл excel с помощью C#


Я хочу получить данные из базы данных, написать в excel и скачать файл. Я использую код, приведенный ниже, и файл не может быть загружен, пока данные отображаются в предупреждении.

Что я уже пробовал:

Код контроллера приведен ниже
        [HttpPost]
        public ActionResult ShipExportToExcel(string[] ShipID)
        {
            var products = new System.Data.DataTable("Person");
            products.Columns.Add("Name ", typeof(string));
            products.Columns.Add("Address", typeof(string));
            products.Columns.Add("Mobile Number", typeof(string));
           
            foreach (var i in ShipID)
            {
                int ID = Convert.ToInt32(i);
                Person obj_Person = new Person();
                obj_Person = new BL_Person().GetPersonByID(ID );
                if (obj_Person!= null)
                {
                    products.Rows.Add(obj_Person .Name, obj_Person.ShipAddress, obj_Person .Cell);
                }
            }
            var grid = new GridView();
            grid.DataSource = products;
            grid.DataBind();

            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment; filename=ExportByExcel.xls");
            //Response.ContentType = "application/ms-excel";
            Response.ContentType = "application/vnd.ms-excel";

            Response.Charset = "";
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);

            grid.RenderControl(htw);

            Response.Output.Write(sw.ToString());
            Response.Flush();
            Response.End();
           
            return View();
            
        }

view code.........................

 $('#btnSave').click(function () {
            var rowCount = $('Table >tbody >tr').length;
            
            if (rowCount > 0) {
            
                var data = {
                    ShipID: shipmentItems
                }
                $.ajax({
                    url: "@Url.Action("ShipExportToExcel", "ExportToExcel", new { area = "Person" })",
                    type: "POST",
                    data: JSON.stringify(data),
                    contentType: "application/json; charset=utf-8",
                    success: function (d) {
                        msgSuccess(d);                 
                    },
                    error: function (request, error) {
                        msgAlerts(error);                    
                    }
                    });
                   
            } else {
                msgAlerts("Please Enter the Record First");
            }

1 Ответов

Рейтинг:
2

Prem Kumar Rathrolla

Раскомментируйте эту строку
Ответ.ContentType = "приложение/ms-excel


Вы можете сделать быстрый просмотр здесь,
сетка.Источник данных = продукты;


Member 10028394

Я действительно Раскомментирую ответ.ContentType = "приложение/ms-excel
но файл не удалось загрузить
Может быть, вы сказали мне, что я пишу код для загрузки файла в jquery на успех, если да, то что?

[no name]

http://geekswithblogs.net/rgupta/archive/2014/06/23/downloading-file-using-ajax-and-jquery-after-submitting-form-data.aspx


Обратитесь к этому