2016-01-20 80 views
0

我必须将数据导出到asp.net c#应用程序中的excel表。现在我已经wriiten下面我想先删除数据集的到期日期栏时间,然后通过 它的生成Excel函数,这样的时间不会在Excel到期日期栏显示的代码如何从datetime列中删除数据集中的时间?

DataTable dt = new DataTable(); 
     dt = ds.Tables[0]; 
     foreach (DataRow row in dt.Rows) 
     { 
      row["ExpiryDate"] = Convert.ToDateTime(row["ExpiryDate"]).ToShortDateString(); 
     } 
     DataSet dsn = new DataSet(); 
     DataTable dtcopy = dt.Clone(); 
     dsn.Tables.Add(dtcopy); 
WebUtility.GenrateExcel(ds, "ExpiredDocuments"); 

线。 ..请帮助上面的代码是不工作...

+2

让我问。 _ExpiryDate_是DateTime列还是字符串? – Steve

+1

'ds.Tables [0] .Rows [i] [“ExpiryDate”]'的格式是什么?任何错误代码? – Ian

+0

没有错误信息 – Nida

回答

-1

我想,你需要透过这块: https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

您应该使用像水木清华

Convert.ToDateTime(ds.Tables[0].Rows[i]["ExpiryDate"]).ToString("MM/dd/yyyy") 

或任何你需要的。

+1

这不会改变(提示)任何 – Steve

+0

对不起,它不起作用 – Nida

+0

这*可以*更改数据并将其分解超出识别 - 在任何不使用美国日期格式的区域设置 –

-1

这些都是你需要为了做来完成你所要求的步骤:

  1. 到相应的ShortDateString创建String类型

  2. 设置新列的值的新列“ExpiryDate”列

  3. 删除“ExpiryDate”列
  4. 将新的字符串列移动到旧的“ExpiryDate”列的位置
  5. 重命名新列 “ExpiryDate”

像这样:

 dt.Columns.Add("ExpiryDateString", typeof(String)); 
     foreach(DataRow row in dt.Rows) 
     { 
      row["ExpiryDateString"] = ((DateTime)row["ExpiryDate"]).ToShortDateString(); 
     } 
     int columnNumber = dt.Columns["ExpiryDate"].Ordinal; 
     dt.Columns.Remove("ExpiryDate"); 
     dt.Columns["ExpiryDateString"].SetOrdinal(columnNumber); 
     dt.Columns["ExpiryDateString"].ColumnName = "ExpiryDate"; 
相关问题