我正在讀取Excel表格中的數據並將其顯示在數據gridview中。在Excel中有一些日期列。所以當我從Excel中讀取數據並將其綁定到dataGridView.The日期以「02/02/2009 12:00:00 AM」格式顯示,但excel列中的實際數據格式爲「2/2/2009」。因此,如何更改日期格式在datagridview中。無法在數據集列中格式化日期,GridView
,因爲我從數據集綁定數據我沒有任何模板列或綁定列設置,所以我不知道在哪裏設置的HTMLEncode =「假」 DataFormatString =「{0:T】」
是有沒有辦法做到這一點,請幫助我。
請找到下面的代碼示例。
string OleDbConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "+ FileUpload1.PostedFile.FileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
string strSheetName = "Sheet1";
OleDbConnection oledbConnection;
OleDbCommand oledbCommand;
OleDbDataAdapter oledbAdapter;
oledbCommand = new OleDbCommand();
oledbAdapter = new OleDbDataAdapter();
DataSet dsExcellData = new DataSet();
oledbConnection = new OleDbConnection(OleDbConnection);
oledbConnection.Open();
oledbCommand.Connection = oledbConnection;
oledbCommand.CommandText = "Select * from [" + strSheetName + "$]"; // i want to find this sheet name
oledbAdapter.SelectCommand = oledbCommand;
oledbAdapter.Fill(dsExcellData);
oledbConnection.Close();
GridView1.DataSource = dsExcellData.Tables[0];
GridView1.DataBind();
=========================================== =============== 我試過
dsExcellData.Tables [0] .Rows [rowcount] [「date_column」]。ToString()] = dsExcellData.Tables [0 ] .Rows [行數] [ 「date_column」]的ToString()]的ToString( 「d」)。。
但該值沒有被賦值爲「mm/dd/yyyy」它也將時間默認時間再次設置爲(mm/dd/yyyy hh:mm:ss AM)。
============================================== ===============
我只是將數據集分配給gridview。問題是數據集正在讀取格式爲mm/dd/yyyy的日期列hh: mm:ss AM.I無法更改數據集中的數據。
============================================== ===============
Finaly我得到了斯科特的回答:
我們要在DataGridView的ItemDataBound添加下面的代碼:
protected void dgValidatedData_ItemDataBound1(object sender, DataGridItemEventArgs e)
{
for (int i = 0; i <= e.Item.Cells.Count - 1; i++)
{
System.DateTime cellDate = default(System.DateTime);
if (System.DateTime.TryParse(e.Item.Cells[i].Text, out cellDate))
{
e.Item.Cells[i].Text = string.Format("{0:d}", cellDate);
}
}
}
你會提前知道所有的列名,還是那個動態的? – ScottE 2009-07-24 12:09:06
我會知道列名,我會從數據庫中獲取它。 – Jebli 2009-07-25 14:10:25