Excel에서 선택한 행을 DataGridview로 가져 오려고합니다. 내 검색에서 OLEDB 방법이 데이터를 가져올 수 있음을 알게되었습니다. 내가 가져올 수있는 셀 범위는 거대한 엑셀 시트가 있고 제한된 열만 가져올 수 있습니다 (예 : c10 : d10 : 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의 하나의 데이터 테이블로 사용하여 내 접근 방식이 올바른지 확인하려고 시도했습니다. 내가 제대로 문제를 이해하는 경우
안녕하십니까, 쿼리가 해결 되었습니까? – Krishnan
예. 각 셀 범위 'Excel_Read (textBox1.Text, "Salary Sheet", "D3", "E3", 8)에 대해 별도로 데모 읽기 함수 (RENAMED : Excel_Read)를 호출했습니다. Excel_Read (textBox1.Text, "Salary Sheet", "c5", "c12", 0); 및 목록에 값을 저장합니다. 나중에 datatable 속성을 사용하여 datagridview에 저장합니다. . –