Как удалить текст подкачки в листе Excel при экспорте данных из GridView в Excelsheet? - PullRequest
3 голосов
/ 22 ноября 2011

Я реализовал экспорт в функциональность Excel в приложении asp.net. Здесь я экспортирую данные из Grid-view в Excel-лист. Я также применил Пейджинг в Grid-view.

Поэтому, когда я экспортирую данные из Grid-view в лист Excel, текст подкачки также отображается в листе Excel, как показано на данном изображении.

enter image description here

Как мы можем удалить это

я следую приведенному ниже подходу для экспорта данных

Code-Behind:

Response.Clear()
Response.ClearHeaders()
Response.AddHeader("content-disposition", "attachment;filename=sample.xls")
Response.Charset = ""
Response.ContentType = "application/vnd.xls"

Dim sb As StringBuilder = New StringBuilder()
Dim objStringWriter As StringWriter = New StringWriter(sb)
Dim objHtmlTextWriter As HtmlTextWriter = New HtmlTextWriter(objStringWriter)

//gvSample is Gridview server control
gvSample.RenderControl(objHtmlTextWriter)

Response.ContentEncoding = Encoding.Unicode
Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble())
Response.Write(objStringWriter)
Response.End()

Спасибо

Ответы [ 3 ]

4 голосов
/ 23 ноября 2011

Перед рендерингом - отключите подкачку страниц, свяжите данные, а затем выполните рендеринг:

 gvSample.AllowPaging = false;
 gvSample.DataSource = ds; //Data Source
 gvSample.DataBind();
 gvSample.RenderControl(objHtmlTextWriter)
0 голосов
/ 02 августа 2014

Работает с использованием SQL DataSourceID

using (StringWriter sw = new StringWriter())
{

  HtmlTextWriter hw = new HtmlTextWriter(sw);
  //To Export all pages
  GridView1.AllowPaging = false;

  GridView1.DataBind();


  GridView1.HeaderRow.BackColor = Color.White;
  foreach (TableCell cell in GridView1.HeaderRow.Cells)
  {
    cell.BackColor = GridView1.HeaderStyle.BackColor;
  }
  foreach (GridViewRow row in GridView1.Rows)
  {
    row.BackColor = Color.White;
    foreach (TableCell cell in row.Cells)
    {
      if (row.RowIndex % 2 == 0)
      {
      cell.BackColor = GridView1.AlternatingRowStyle.BackColor;
      }
      else
      {
        cell.BackColor = GridView1.RowStyle.BackColor;
      }
    cell.CssClass = "textmode";
  }
}

GridView1.RenderControl(hw);

//style to format numbers to string
string style = @"<style> .textmode { mso-number-format:\@; } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();

другой прикрепленный файл кодировки asp

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Attributes["ondblclick"] = Page.ClientScript.GetPostBackClientHyperlink(GridView1, "Edit$" + e.Row.RowIndex);
            e.Row.Attributes["style"] = "cursor:pointer";
        }
    }
0 голосов
/ 09 января 2014

когда-либо, чтобы когда-либо получить данные из базы данных для показа gridview, до этого, но содержимое результата в viewstate [""] после его повторного использования.при поиске данных для фильтрации основного содержимого обновленные данные будут представлены в состоянии просмотра, поэтому вы получите правильные данные для экспорта

gvSample.AllowPaging = false;
gvSample.DataSource = ViewState["vsData"]; //Data Source
gvSample.DataBind();
gvSample.RenderControl(objHtmlTextWriter);
...