C# 如何将Excel数据插入C中的现有表#

C# 如何将Excel数据插入C中的现有表#,c#,excel,datagridview,datagridviewcolumn,C#,Excel,Datagridview,Datagridviewcolumn,大家好,我刚刚开始创建考试计划系统,在将Excel表插入数据网格视图时遇到了一个问题。我已经为time创建了一些行和列,但是当我插入新数据时,它会在下面插入空单元格,而不是插入现有的单元格。感谢您的帮助 string PathConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtPath.Text + ";Extended Properties=\"Excel 8.0; HDR = Yes;\";"; OleDbConnecti

大家好,我刚刚开始创建考试计划系统,在将Excel表插入数据网格视图时遇到了一个问题。我已经为time创建了一些行和列,但是当我插入新数据时,它会在下面插入空单元格,而不是插入现有的单元格。感谢您的帮助

string PathConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtPath.Text + ";Extended Properties=\"Excel 8.0; HDR = Yes;\";";

OleDbConnection MyConnection = new OleDbConnection(PathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", MyConnection);
DataTable dt = new DataTable();            
dt.Columns.Add("Time");

DataRow dr = dt.NewRow();
dr["Time"] = "9:00";
dt.Rows.Add(dr);

DataRow dr1 = dt.NewRow();
dr1["Time"] = "10:00";
dt.Rows.Add(dr1);

`etc`

myDataAdapter.Fill(dt);            
DataGridView1.DataSource = dt;

现在还不清楚你想要实现什么。参考发布的代码,您可以正确地看到,除了第一列的“9:00和10:00”值之外,表的前两行都有“空”单元格。此外,在前两行之后的第一列中将有“空”单元格。这是因为在“用数据填充”之前添加了“时间”值的列和行

我建议您先添加数据,然后添加“时间”列。然后,不要为时间值“添加”新行……使用读取原始数据时的“现有”行

示例:首先用数据填充表格…
myDataAdapter.fill(dt)…然后添加“时间”列作为现有表中的第一列。它可能看起来像

OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", MyConnection);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);

DataColumn timeCol = new DataColumn("Time", typeof(string));
dt.Columns.Add(timeCol);
timeCol.SetOrdinal(0);
dt.Rows[0].SetField("Time", "9:00");
dt.Rows[1].SetField("Time", "10:00");
dataGridView1.DataSource = dt;