【问题标题】:Uploading excel file to DataGridView将excel文件上传到DataGridView
【发布时间】:2015-06-02 22:40:37
【问题描述】:

我目前正在制作一个将 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 文件的工作表名称)

【问题讨论】:

  • 我知道你可以设置你想具体使用哪个单元格:DataGridView1.CurrentCell = DataGridView1.Rows[rowindex].Cells[columnindex]
  • 感谢您的回答,但我怎样才能把它放在我的代码上?请帮帮我..
  • @WhyCry,我认为您的单元格引用是针对 DataGrid,而不是针对 Data Source。
  • 我误读了我认为的问题。不知道当我查看他的代码时我脑子里在想什么。

标签: c# excel datagridview


【解决方案1】:

这样做的一种方法是在您的选择查询中使用范围。 例如,如果您只想上传特定内容,可以使用以下查询

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

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

【讨论】:

  • 我什至不知道你可以从后端做到这一点。
【解决方案2】:

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

"Select * from Sheet1$[B1:F4]"

你也可以参考使用F1、F2、F3等的列。参考这个答案参考:

OLEDB query on Excel without headers: How do I specify Columns?

【讨论】:

    猜你喜欢
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多