我正在读取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