Как импортировать файл 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
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
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, чтобы их было легче поместить в представление сетки данных.

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