Как импортировать файл excel в datagridview на c#

Я работаю над импортом файла Excel в свой DataGridView. Но как мне импортировать файл Excel с выбранными строками и столбцами в мой DataGridView? У меня есть только код для загрузки всего файла excel на мой DataGridView, я новичок в C#

У меня есть открытый файл диалога и ищу файл excel, скажем, мои данные начинаются в C:34,D:34 и E:34 в одном столбце или данных, которые имеют EmploayeeName, и выбираю верхние 24 строки и загружаю их в мой DataGridView.

Заранее благодарим за помощь! Это единственное, что у меня есть :(

private void OpenFile_Click(object sender, EventArgs e)
{
    OpenFileDialog fdlg = new OpenFileDialog();
    fdlg.Title = "Select file";
    fdlg.InitialDirectory = @"c:\";
    fdlg.FileName = txtFileName.Text;
    fdlg.Filter = "Excel Sheet(*.xlsx)|*.xlsx|All Files(*.*)|*.*";
    fdlg.FilterIndex = 1;
    fdlg.RestoreDirectory = true;
    if (fdlg.ShowDialog() == DialogResult.OK)
    {
        path = textBox1.Text;
        txtFileName.Text = fdlg.FileName;

        Application.DoEvents();
    }
}

private void LoadExcel_Click(object sender, EventArgs e)
{
    System.Data.OleDb.OleDbConnection MyConnection;
    System.Data.DataSet DtSet;
    System.Data.OleDb.OleDbDataAdapter MyCommand;
    MyConnection = new System.Data.OleDb.OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\csharp.net-informations.xls';Extended Properties=Excel 8.0;");
    MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
    MyCommand.TableMappings.Add("Table", "Net-informations.com");
    DtSet = new System.Data.DataSet();
    MyCommand.Fill(DtSet);
    dgrdReciver.DataSource = DtSet.Tables[0];
    MyConnection.Close();
}

Ваш вопрос непонятен. Во-первых, если вы хотите получить «выбранные» ячейки из файла Excel… тогда вам придется поговорить с «Excel». Когда вы «импортируете» файл Excel, информация о выбранных ячейках будет недоступна. Кроме того, открытие Excel с последующим немедленным захватом выбранных ячеек ... кажется странным, поскольку вы не могли знать (в каждом случае), что это за «выбранные» ячейки. Открытие файла Excel «подразумевает», что пользователь выберет ячейки и «затем» сигнализирует через некоторый механизм, что необходимо выполнить копирование.

JohnG 14.09.2018 03:00

Я предполагаю, что вы усложняете это более сложным, чем должно быть. Вы думали о том, чтобы сделать две (2) сетки. Первоначально обе сетки будут содержать те же «копии» исходных данных Excel, которые у вас уже есть. Тогда… выполнить то, что вы описываете, было бы намного проще, поскольку тогда вы «знали бы», какие ячейки «выбраны». Кроме того, потребуется больше работы, чтобы взаимодействовать с библиотекой Excel, чтобы получить доступ к переменным Excel. Просто мысль.

JohnG 14.09.2018 03:01

Вы можете использовать OpenXml для чтения выбранной строки / ячеек Excel. stackoverflow.com/questions/3321082/…

umesh shukla 16.09.2018 13:12
2
3
1 067
1

Ответы 1

Ну, я бы начал с получения пути к файлу, а затем использовал бы такой файловый поток:

string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), file.Name);


    using (Stream fileStream = File.OpenWrite(path))
    {

        // do what you want with the file stream.
        sftp.DownloadFile(remoteDirectory + "/" + file.Name, fileStream);



    }

Я бы даже поместил эти данные в SQL Server, чтобы их было легче поместить в представление сетки данных.

Другие вопросы по теме