Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将特定Excel列范围添加到通过";添加的DataGridView列;加上一栏「;_C#_Excel_Datagridview - Fatal编程技术网

C# 如何将特定Excel列范围添加到通过";添加的DataGridView列;加上一栏「;

C# 如何将特定Excel列范围添加到通过";添加的DataGridView列;加上一栏「;,c#,excel,datagridview,C#,Excel,Datagridview,我正在尝试将excel工作表列范围(A1:A100)导入我在DataGridView“添加列”菜单中创建的DataGridView“列1”,如下图所示: 以下是我必须导入excel工作表的当前代码: private void ribbonButton1_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); if (openFil

我正在尝试将excel工作表列范围(A1:A100)导入我在DataGridView“添加列”菜单中创建的DataGridView“列1”,如下图所示:

以下是我必须导入excel工作表的当前代码:

private void ribbonButton1_Click(object sender, EventArgs e)
    {
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
        if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            this.textBox_path.Text = openFileDialog1.FileName;
            string pathconn = "Provider=Microsoft.ACE.OLEDB.12.0; Data source=" + textBox_path.Text + ";Extended Properties=\"Excel 12.0;HDR= yes;\";";
            OleDbConnection conn = new OleDbConnection(pathconn);
            OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter("Select * from [TB$]", conn);
            DataTable dt = new DataTable();
            MyDataAdapter.Fill(dt);
            dataGridView1.DataSource = dt;
但每当我在创建自定义列后导入它时,它就会导入自定义创建列右侧的范围,如下图所示:

谁能帮帮我吗。我只希望导入数据位于我提供的列中


感谢mil

在设置其
数据源之前,您是否已尝试将
DataGridView
s
AutoGenerateColumns
设置为
false
…dataGridView1.AutoGenerateColumns=false;嗨,约翰。它似乎在右列下方填充,但是填充是空白的,就像空白的excel工作表一样。这似乎很奇怪?这是我的新代码:MyDataAdapter.Fill(dt);dataGridView1.AutoGenerateColumns=false;dataGridView1.DataSource=dt;是否正确?是否尝试将数据源设置为空的
DataGridView
?如果网格中没有列,那么您发布的代码似乎可以正常工作。在这种情况下,需要删除自动生成列或将其设置为true。它应该使用第一行作为列标题。如果不在网格中预定义列,会发生什么情况?如果没有显示任何内容…我会仔细查看excel工作表。如果列是在设计器中预定义的,请确保将
DataPropertyName
设置为与您导入的列名匹配。使用excel这通常是工作表中的第一行。在设置其
数据源之前,您是否尝试将
DataGridView
s
AutoGenerateColumns
设置为
false
…dataGridView1.AutoGenerateColumns=false;嗨,约翰。它似乎在右列下方填充,但是填充是空白的,就像空白的excel工作表一样。这似乎很奇怪?这是我的新代码:MyDataAdapter.Fill(dt);dataGridView1.AutoGenerateColumns=false;dataGridView1.DataSource=dt;是否正确?是否尝试将数据源设置为空的
DataGridView
?如果网格中没有列,那么您发布的代码似乎可以正常工作。在这种情况下,需要删除自动生成列或将其设置为true。它应该使用第一行作为列标题。如果不在网格中预定义列,会发生什么情况?如果没有显示任何内容…我会仔细查看excel工作表。如果列是在设计器中预定义的,请确保将
DataPropertyName
设置为与您导入的列名匹配。使用excel,这通常是工作表中的第一行。