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の1つのデータテーブルとして役立ち、私のアプローチも正しいです。私が正しくあなたの問題を理解している場合
@pranjalこんにちは、あなたの質問は解決しましたか? – Krishnan
ええ私は私のデモ読書関数(RENAMED:Excel_Read)をExcel_Read(textBox1.Text、 "Salary Sheet"、 "D3"、 "E3"、8)のセル範囲ごとに別々に呼び出しました。Excel_Read(textBox1.Text、 "Salary Sheet"、 "c5"、 "c12"、0); 'リストに値を格納しました。後でdatatableプロパティを使用してdatagridviewに配置します。 。 –