2016-01-22 73 views
0

如何从excel表中的datetime列中删除时间?

public static void GenrateExcel(DataSet ds, string FileName, string TemplateName) 
{ 
try 
    { 
     ReplcateColumnSpace(ds); 

     HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"; 
     HttpContext.Current.Response.Charset = ""; 

     XmlDataDocument xdd = new XmlDataDocument(ds); 
     XslTransform xt = new XslTransform(); 
     xt.Load(HttpContext.Current.Server.MapPath("~/ExcelTemplate/" + TemplateName + ".xsl")); 
     xt.Transform(xdd, null, HttpContext.Current.Response.OutputStream); 
     HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ".xls"); 
     // HttpContext.Current.Response.Flush(); 

     HttpContext.Current.Response.End(); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
} 

的代码我已经写线它产生从DS(数据集)的Excel工作表。还有在数据集中到期日的列。现在,只要调用该函数并成功生成Excel表格。时间也会附加到Excel表单文档中的到期日期列。我想从有效日期列中删除时间,日期应该以mm/dd/yyyy格式显示。请帮忙 !!!

+0

你试图改变文化信息的DateTimeFormat? – Gnqz

+0

我对c#中的代码生成的excel表没有任何意见...请帮忙!!! – Nida

+0

Excel只是使用您的CultureInfo设置。你在你的DataSet中有日期,而且excel所做的只是将它们转换为字符串。日期的打印方式取决于特定文化的格式。 – Gnqz

回答

0

一个解决办法是改变数据集:

foreach (DataTable dt in ds.Tables) 
     { 
      if (dt.Columns.Contains("ExpiryDate")) 
      { 
       foreach (DataRow dr in dt.Rows) 
       { 
        dr["ExpiryDate"] = DateTime.Parse((dr["ExpiryDate"].ToString())).Date; 
       } 
      } 
     }