Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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文件上传到datagridview的程序。我正在考虑让它更灵活、更友好。我的问题是,是否可以设置启动excel文件上载的行或列? 因为我现在正在上传excel文件的所有内容 这是我的代码: string path = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + textBox1.Text + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;\";"; OleDb

我目前正在制作一个将excel文件上传到datagridview的程序。我正在考虑让它更灵活、更友好。我的问题是,是否可以设置启动excel文件上载的行或列? 因为我现在正在上传excel文件的所有内容

这是我的代码:

string path = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + textBox1.Text + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;\";";
OleDbConnection con = new OleDbConnection(path);

OleDbDataAdapter adapter = new OleDbDataAdapter("Select * from [" + textBox2.Text + "$]", con);
DataTable dt = new DataTable();

adapter.Fill(dt);
dataGridView1.DataSource = dt;

(textbox2.text表示Excel文件的工作表名称)

一种方法是在select查询中使用range。 例如,如果只想上传特定内容,可以使用以下查询

"Select * from [" + textBox2.Text + "$[A1:C100]"

其中A1和C100是起始和结束单元编号。您可以根据所需的范围动态构造查询。

您可以将单元格的值作为查询的一部分进行传递。例如,要查询B1到F4的范围:

“从表1$[B1:F4]中选择*”

您也可以使用F1、F2、F3等参考列。参考此答案:


我知道您可以设置要特别使用的单元格:
DataGridView1.CurrentCell=DataGridView1.Rows[rowindex].Cells[columnindex]
谢谢您的回答,但我如何才能将其放在代码中?请帮帮我。@WhyCry,我想你的单元格引用是针对数据网格的,不是针对数据源的。我想我误解了这个问题。当我看他的代码时,我不知道我脑子里在想什么。我甚至不知道你能从后端做到这一点。