點擊導入按鈕,獲取本頁面的datagridview標題的結構,并傳遞到導入界面。
新增一個datatable用于存儲datagridview的caption和name,這里用的是devexpress組件中的gridview。
?DataTable dt = new DataTable();
? ? ? ? ? ? DataColumn CAPTION = new DataColumn("CAPTION", typeof(String));
? ? ? ? ? ? DataColumn NAME = new DataColumn("NAME", typeof(String));
? ? ? ? ? ? dt.Columns.Add(CAPTION);
? ? ? ? ? ? dt.Columns.Add(NAME);
? ? ? ? ? ? for (int i = 0; i < this.gridView1.Columns.Count; i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? string _caption = this.gridView1.Columns[i].Caption.ToString();
? ? ? ? ? ? ? ? string _name = this.gridView1.Columns[i].FieldName.ToString();
? ? ? ? ? ? ? ??DataRow dr = dt.NewRow();
? ? ? ? ? ? ? ??dr["CAPTION"] = _caption;
? ? ? ? ? ? ? ??dr["NAME"] = _name;
? ? ? ? ? ? ? ??dt.Rows.Add(dr);
? ? ? ? ? ? }
? ? ? ? ? ? UI_EXPINFO export = new ?UI_EXPINFO();?
? ? ? ? ? ? export.GetHeader = dt;//傳遞標題到導入頁面
? ? ? ? ? ? export.Sendtable += (_dt) =>?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? this.gridControl1.DataSource = _dt;?
? ? ? ? ? ? };
? ? ? ? ? ? export.ShowDialog();
在導入頁面增加委托,將導入后的數據傳回本頁面并展示。
導入頁面:C# 將Excel格式文件導入到界面中,用datagridview顯示-CSDN博客
? ? public delegate void SendTables(DataTable dt);
? ? public event SendTables Sendtable;