我想從Excel表導入選定的行到datagridview。在我的搜索中,我學到了OLEDB方法來導入數據。我能夠導入的單元格的範圍,但是如果我有一個巨大的Excel表單並且只想導入有限的列,例如c6:c10和d6:d10。我怎樣才能實現它?我的代碼如下:C#:從excel工作表中選擇多個數據到datagridview
public void demoread (string FileName, string SheetName, string StartCell, string EndCell)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Data.DataTable dt = new System.Data.DataTable();
OleDbConnection cn = new OleDbConnection { ConnectionString = ConnectionString(FileName, "No") };
try
{
List<string> jop = new List<string>();
cn.Open();
string SelectStatement = string.Format(@"SELECT * FROM [{0}${1}:{2}]", SheetName, StartCell, EndCell);
//OleDbDataAdapter mydataadapter = new OleDbDataAdapter("Select * from [" + "Salary Sheet" + "$B4:H10 +$c7:c10]", cn);
//mydataadapter.Fill(dt);
//dataGridView1.DataSource = dt;
//string[] data = dt.;
OleDbCommand cmd = new OleDbCommand { CommandText = SelectStatement,Connection = cn };
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
for (int i = 0; i < 100; i++)
{
MessageBox.Show(dr.GetString(0));
jop[i] = dr.GetString(0).ToString();
// MessageBox.Show(dr.GetString(0));
// dataGridView1.DataSource = dr;
}
}
}
else
{
//Console.WriteLine("No rows!!!");
}
}
catch(Exception er)
{
MessageBox.Show(er.ToString());
}
}
在評論我試過oledbdataadapter
命令也。 我甚至試圖將結果存儲在特定的列表中,以便後來自己將它作爲datagridview.please中的一個數據表幫助我,甚至是我的方法是正確的。
@pranjal嗨,您的查詢是否已解決? – Krishnan
是我做了什麼,我爲每個單元格範圍分別調用了我的演示讀取函數(RENAMED:Excel_Read)'Excel_Read(textBox1.Text,「Salary Sheet」,「D3」,「E3」,8); Excel_Read(textBox1.Text,「薪資表」,「c5」,「c12」,0);'並將值存儲在列表中。後來使用datatable屬性將其放在datagridview上。 。 –