2014-01-16 4 views
0

Привет, у меня есть этот код, чтобы экспортировать мои данные gridview в excel , и моя проблема в том, что gridview показывает 12-часовой формат, но когда я экспортирую его в excel, он показывает 24-часовой формат, как ca я делаю это в 12-часовой формат? Спасибо.export to excel using asp date issue

  DataSet ds = (DataSet)ViewState["audit"]; 
      DataTable dt = new DataTable(); 
      dt = ds.Tables[0]; 

      Table table = new Table(); 
      AuditTrailGV.AllowPaging = false; 
      AuditTrailGV.DataSource = (DataSet)ViewState["audit"]; 
      AuditTrailGV.DataBind(); 

      for (int i = 0; i < AuditTrailGV.HeaderRow.Cells.Count; i++) 
      { 
       AuditTrailGV.HeaderRow.Cells[i].Style.Add("background-color", "#bfc2c7"); 

      } 
      AuditTrailGV.HeaderRow.Style.Add("border-color", "#FFFFFF"); 
      int j = 1; 
      foreach (GridViewRow gvrow in AuditTrailGV.Rows) 
      { 
       //gvrow.BackColor = color.White; 
       gvrow.Style.Add("background-color", "#FFFFFF"); 
       gvrow.Style.Add("border-color", "#bfc2c7"); 
       if (j <= AuditTrailGV.Rows.Count) 
       { 
        if (j % 2 != 0) 
        { 
         for (int k = 0; k < gvrow.Cells.Count; k++) 
         { 
          gvrow.Cells[k].Style.Add("background-color", "#EFF3FB"); 
          gvrow.Cells[k].Style.Add("border-color", "#bfc2c7"); 
         } 

        } 
        else 
        { 
         for (int k = 0; k < gvrow.Cells.Count; k++) 
         { 
          gvrow.Cells[k].Style.Add("border-color", "#bfc2c7"); 
         } 
        } 
       } 
       j++; 
      } 


      foreach (GridViewRow row in AuditTrailGV.Rows) 
      { 
       table.Rows.Add(row); 
      } 



      TableHeaderCell header = new TableHeaderCell(); 
      header.RowSpan = 1; 
      header.ColumnSpan = 6; 
      header.Text = "Inventory Accounting and Control System"; 
      header.Font.Bold = true; 
      header.HorizontalAlign = HorizontalAlign.Center; 
      header.VerticalAlign = VerticalAlign.Middle; 
      header.Font.Size = 20; 
      TableRow headerrow = new TableRow(); 
      headerrow.Cells.Add(header); 



      TableHeaderCell header2 = new TableHeaderCell(); 
      header2.RowSpan = 1; 
      header2.ColumnSpan = 6; 
      header2.Text = "Audit Trail"; 
      header2.Font.Bold = true; 
      header2.HorizontalAlign = HorizontalAlign.Center; 
      header2.VerticalAlign = VerticalAlign.Middle; 
      header2.Font.Size = 16; 
      TableRow headerrow2 = new TableRow(); 
      headerrow2.Cells.Add(header2); 

      TableHeaderCell header3 = new TableHeaderCell(); 
      header3.RowSpan = 1; 
      header3.ColumnSpan = 6; 
      header3.Text = DatefromTxtBox.Text + " to " + DatetoTxtBox.Text; 
      header3.Font.Bold = true; 
      header3.HorizontalAlign = HorizontalAlign.Center; 
      header3.VerticalAlign = VerticalAlign.Middle; 
      header3.Font.Size = 16; 
      TableRow headerrow3 = new TableRow(); 
      headerrow3.Cells.Add(header3); 

      table.Rows.AddAt(0, headerrow); 
      table.Rows.AddAt(1, headerrow2); 
      table.Rows.AddAt(2, headerrow3); 
      table.Rows.AddAt(3, AuditTrailGV.HeaderRow); 


      Response.ClearContent(); 
      Response.Buffer = true; 
      Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "IACSAuditTrail" + "[" + DatefromTxtBox.Text.Replace("/", "") + "_" + DatetoTxtBox.Text.Replace("/", "") + "]" + ".xls")); 
      Response.ContentType = "application/ms-excel"; 
      StringWriter sw = new StringWriter(); 
      HtmlTextWriter htw = new HtmlTextWriter(sw); 
    table.RenderControl(htw); 
      Response.Write(sw.ToString()); 
      Response.End() 

Это его, что он выглядит enter image description here
, но это то, что я выглядит, когда я экспортировать его, чтобы преуспеть :(

enter image description here

ответ

0

Единственный способ сохранить формат даты, чтобы предварительно формат поле даты в виде текста, а затем экспортировать в Excel. Для этого

string style = @"<style> TD { mso-number-format:\@; } </style> "; 
Response.write(style); 
//Code to Export Control 
Panel1.RenderControl(htmlWrite); 

вы можете обратиться к нижеприведенному листу K для получения дополнительной информации

http://www.aspsnippets.com/Articles/Export-GridView-To-Word-Excel-PDF-CSV-Formats-in-ASP.Net.aspx

+0

пробовал не работает. все еще в 24-часовом формате. – user2705620