Je lis des données d'une feuille Excel et je l'affiche dans une grille de données.Il y a des colonnes de date dans excel.So quand je lis les données de l'Excel et le lie à le dataGridView.La date est affichée dans le format "02/02/2009 12:00:00 AM" mais les données réelles dans la colonne Excel sont au format "02/02/2009". Alors comment changer le format de la date dans le datagridview.Impossible de formater la date dans la colonne de l'ensemble de données, GridView
Depuis que je suis liant les données de l'ensemble de données je n'ai pas toutes les colonnes de modèle ou colonne liée donc je peux ne sais pas où définir la HtmlEncode = « false » DataFormatString = « {0: T} »
Est il n'y a aucun moyen de le faire. S'il vous plaît aidez-moi.
Veuillez trouver l'exemple de code ci-dessous.
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();
=========================================== =============== J'ai essayé les
dsExcellData.Tables [0] .Rows [rowcount] [ "date_column"]. ToString()] = dsExcellData.Tables [0 ] .Rows [rowcount] ["date_column"]. ToString()]. ToString ("d");
mais la valeur n'est pas affectée en tant que "mm/jj/aaaa" Elle prend également l'heure par défaut (mm/jj/aaaa hh: mm: ss AM).
============================================== ================
J'affecte juste l'ensemble de données à la grille. Le problème est que l'ensemble de données lit la colonne de date au format mm/jj/aaaa hh: mm: ss AM.Je suis incapable de changer les données dans le jeu de données aussi.
============================================== ===============
Finaly j'ai obtenu la réponse de SCOTTÉ:
nous devons ajouter le code ci-dessous dans le ItemDataBound du datagridview:
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);
}
}
}
Connaissez-vous à l'avance tous les noms de colonnes, ou est-ce dynamique? – ScottE
Je connaîtrai les noms de colonnes que je vais chercher à partir de DB. – Jebli