Экспорт Gridview в Excel в ASP.net с помощью EPPlus - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь экспортировать данные из моего griedview в файл Excel. Я пробовал с библиотекой EPPlus, но она печатает только первую страницу сетки, даже когда я отключаю подкачку в начале алгоритма. Вот код, использующий EPPlus:

            Response.Clear();
            Response.Charset = "";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("content-disposition", "attachment;filename=GridData.xlsx");

            cgvReferentiel.AllowPaging = false; //here i'm disabling paging
            if (cgvReferentiel.Rows.Count > 0)
            {
                var dtb = new DataTable();

                //Creating table headers
                dtb.Columns.Add("PAYS", typeof(string));
                dtb.Columns.Add("SOCIETE", typeof(string));
                dtb.Columns.Add("SECTION", typeof(string));
                dtb.Columns.Add("MATRICULE", typeof(string));
                dtb.Columns.Add("NOM(S)", typeof(string));
                dtb.Columns.Add("PRENOM(S)", typeof(string));
                dtb.Columns.Add("IDENTIFIANT", typeof(string));
                dtb.Columns.Add("SOURCE", typeof(string));
                dtb.Columns.Add("TYPE", typeof(string));
                dtb.Columns.Add("DATE D'ARCHIVAGE", typeof(string));

                //Adding rows content
                foreach (GridViewRow row in cgvReferentiel.Rows)
                {
                    var pays = row.Cells[0].Text;
                    var societe = row.Cells[1].Text;
                    var section = row.Cells[2].Text;
                    var matricule = row.Cells[3].Text;
                    var nom = row.Cells[4].Text;
                    var prenom = row.Cells[5].Text;
                    var identifiant = row.Cells[6].Text;
                    var source = row.Cells[7].Text;
                    var type = row.Cells[8].Text;
                    var date = row.Cells[9].Text;

                    dtb.Rows.Add(pays, societe, section,matricule,nom,prenom,identifiant,source,type,date);

                }

                //Writing the excel file
                using (ExcelPackage pck = new ExcelPackage())
                {
                    ExcelWorksheet wsDt = pck.Workbook.Worksheets.Add("Historique");
                    wsDt.Cells["A1"].LoadFromDataTable(dtb, true, TableStyles.Light20);
                    wsDt.Cells.AutoFitColumns();

                    Response.BinaryWrite(pck.GetAsByteArray());
                }

                Response.Flush();
                Response.End();

            }

Что в этом плохого?

1 Ответ

0 голосов
/ 17 июня 2019

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

cgvReferentiel.DataBind();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...