如何将excel数据导入gridControl(Dev控件)中,grid中有数据,在原有数据上追加

2024-12-30 00:25:22
推荐回答(1个)
回答1:

在 WinForm中打开Excel
托一个 openFileDialog(openFileDialogSource) 和 toolStrip 和ComboBox(ctlPath) 控件

代码:
DataTable dTable;
// 打开
private void buttonOpen_Click(object sender, EventArgs e)
{
if (openFileDialogSource.ShowDialog()==DialogResult.OK)
{
ctlPath.Text = openFileDialogSource.FileName;
ExceltoDataSet(ctlPath.Text);
}
}

//打开方法
public DataTable ExceltoDataSet(string path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();

string strExcel = "";
OleDbDataAdapter myCommand = null;
DataSet ds = null;
strExcel = "Select * From [" + tableName + "]";
myCommand = new OleDbDataAdapter(strExcel, strConn);

ds = new DataSet();

myCommand.Fill(ds, tableName);
System.Data.DataTable dt = ds.Tables[0];

dTable = dt;
return dt;

}

//显示数据
private void tsbRefresh_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(ctlPath.Text))
{
ctlPath.Focus();
return;
}
try
{
for (int i = 7; i >= 0; i--)
{
dTable.Rows.Remove(dTable.Rows[i]);

}

gridSource.DataSource = dTable;// gridSource :( DataGridView)
}
catch (Exception)
{

throw;
}
}