Я работаю над импортом файла 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();
}
Я предполагаю, что вы усложняете это более сложным, чем должно быть. Вы думали о том, чтобы сделать две (2) сетки. Первоначально обе сетки будут содержать те же «копии» исходных данных Excel, которые у вас уже есть. Тогда… выполнить то, что вы описываете, было бы намного проще, поскольку тогда вы «знали бы», какие ячейки «выбраны». Кроме того, потребуется больше работы, чтобы взаимодействовать с библиотекой Excel, чтобы получить доступ к переменным Excel. Просто мысль.
Вы можете использовать OpenXml для чтения выбранной строки / ячеек Excel. stackoverflow.com/questions/3321082/…
Ну, я бы начал с получения пути к файлу, а затем использовал бы такой файловый поток:
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, чтобы их было легче поместить в представление сетки данных.
Ваш вопрос непонятен. Во-первых, если вы хотите получить «выбранные» ячейки из файла Excel… тогда вам придется поговорить с «Excel». Когда вы «импортируете» файл Excel, информация о выбранных ячейках будет недоступна. Кроме того, открытие Excel с последующим немедленным захватом выбранных ячеек ... кажется странным, поскольку вы не могли знать (в каждом случае), что это за «выбранные» ячейки. Открытие файла Excel «подразумевает», что пользователь выберет ячейки и «затем» сигнализирует через некоторый механизм, что необходимо выполнить копирование.