Экспорт в Excel из gridview

#c#

#c# #asp.net #gridview #экспорт в Excel

Вопрос:

У меня есть код для экспорта в Excel. В моем gridview я установил подкачку для отображения количества записей в pagecount.

Но при моем экспорте в Excel он не выдает мне целые записи, вместо этого он показывает мне одну и ту же страницу с шестью записями.

Мой код:

 string attachment = "attachment; filename=Contacts.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);

// Create a form to contain the grid
HtmlForm frm = new HtmlForm();

GrdDynamicControls.AllowPaging = false;
GrdDynamicControls.Parent.Controls.Add(frm);

frm.Attributes["runat"] = "server";
frm.Controls.Add(GrdDynamicControls);
frm.RenderControl(htw);

//GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
  

Как мне изменить или отключить подкачку, чтобы получить все записи из моего gridview?

У меня есть числа в gridview как 9199 и т.д., Но после экспорта он показывает мне их в формате 9,99 и т.д.

Как мне передать ячейки формата в numbers отсюда?

Комментарии:

1. привет, спасибо за твой ответ. у меня есть числа в gridview как 9199 …. но после экспорта они отображаются в формате 9,99…. как передать формат ячеек в цифрах отсюда..

Ответ №1:

Я не знаком с ASP.NET , но я полагаю, что вы привязываете некоторый источник данных (DataTable или List<>) к вашей сетке. Экспортируйте источник данных вместо DataGrid.

Ответ №2:

Вы можете экспортировать источник данных из gridview (например, dataset) в Excel.

Вот пример кода для этого. Вы можете обратиться к Инструкции: Экспортировать набор данных в Excel (C # / ASP.NET для получения дополнительной информации.

 using System;
using System.Data;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Whatever
{
    ///
    /// This class provides a method to write a dataset to the HttpResponse as
    /// an Excel file.
    ///
    public class ExcelExport
    {
        public static void ExportDataSetToExcel(DataSet ds, string filename)
        {
            HttpResponse response = HttpContext.Current.Response;

            // First let's clean up the response.object.
            response.Clear();
            response.Charset = "";

            // Set the response mime type for Excel.
            response.ContentType = "application/vnd.ms-excel";
            response.AddHeader("Content-Disposition", "attachment;filename=""   filename   """);

            // Create a string writer.
            using (StringWriter sw = new StringWriter())
            {
                using (HtmlTextWriter htw = new HtmlTextWriter(sw))
                {
                    // Instantiate a datagrid
                    DataGrid dg = new DataGrid();
                    dg.DataSource = ds.Tables[0];
                    dg.DataBind();
                    dg.RenderControl(htw);
                    response.Write(sw.ToString());
                    response.End();
                }
            }
        }
    }
}
  

Комментарии:

1. Вопрос касался проблемы подкачки. Я не вижу в вашем ответе объяснения, объясняющего актуальность основного пункта. Другими словами, этот код является просто базовым методом экспорта xls.

Ответ №3:

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

Я бы также повторил комментарий Орсола; где вместо экспорта того, что находится в сетке; экспортируйте источник данных.