如何从Excel工作表中选择特定列而不是所有列
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", txtPath.Text);
string query = String.Format("select * from [{0}$]", "Sheet1");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];
答案 0 :(得分:6)
怎么样:
SELECT * FROM [Sheet1$B14:C20]
这应该选择单元格B14
到C20
。
答案 1 :(得分:1)
这听起来微不足道,但这是我从你的问题中理解的。而不是SELECT *
使用SELECT [columnName1],[columnName2] FROM Sheet1.
。此处columnName1
和columnName2
应为您希望从Excel Sheet
获取的列标题。
答案 2 :(得分:0)
如果要在高级选择语句上填充here is a good reference之前选择数据。如果你想操作填充数据集的数据,那么这里是如何:
DataTable myTable = dataSet.Tables[0];
var myColumn = myTable.Columns["ColumnName"];
或
var myColumn = myTable.Columns[0];
要访问单个字段,它看起来就像这样。
var field = myTable.Rows[0][myColumn];