2016-01-20 46 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"; 
相關問題