Заказ Datagridview.SelectedCells
Я работаю над приложением C #, которое содержит много DataGridView, которые пусты. Пользователь должен заполнить их копированными / вставленными данными из excel. Я делаю следующее:
int i = 0; string s = Clipboard.GetText(); // Separate lines string[] lines = Regex.Split(s, "\r\n"); foreach (string line in lines) { // Separate each cell string[] cells = line.Split('\t'); foreach (string cell in cells) { // If we selected as many cells as copied if (dataGridView.SelectedCells.Count == (lines.Length-1)*(cells.Length)) { dataGridView.SelectedCells[i].Value = cell; i++; } } }
Проблема в том, что если я копирую что-то вроде этого (на excel):
1 2 3 4 5 6
Мой datagridview будет выглядеть так:
- как экспортировать новые данные datagridview в Excel
- Копирование данных из Excel в базу данных SQL VB.NET
- Как импортировать данные из бесконечного количества файлов данных в DataGridView с помощью vb.net?
- datagridview для excel - progressbar vb.net
- Как создать новый формат на второй базе данных datagridview на первом datagridview в vb.net
6 4 2 5 3 1
Я действительно не знаю, что делать, чтобы исправить это … Спасибо заранее
- Файл Excel VB.NET не подключается к виртуальному datagridview
- Экспорт Datagridview в Excel в C #
- удалите некоторую строку на основе значения ячейки перед импортом в datagridview с помощью c #
- копировать и вставлять данные в элемент управления Datagridview
- Добавить значения в файл excel
- Добавить буквы в DataTable в столбце с числовыми значениями
- Имея некоторые проблемы с экспортом DataGridView Data для Excel
- Как получить значение ячейки в качестве валюты листа excel
замещать
dataGridView.SelectedCells[i].Value = cell;
с
dataGridView.SelectedCells[(dataGridView.SelectedCells.Count-1) - i].Value = cell;
- Преобразуйте данные буфера обмена в 2-мерный массив. Помните длину каждого измерения.
- Перейдите через выбранные ячейки и найдите верхние и нижние правые ячейки. Из этого вы можете определить, что он имеет нужный размер.
- Используя двойной цикл, сопоставьте данные буфера обмена из позиции массива непосредственно с координатой ячейки (не используя выделенные ячейки), используя координату topleft cell в качестве смещения.
Альтернативно, вместо 2-мерного массива, вы можете создать список небольшого класса / структуры, содержащий свойства Row, Col и Value. Затем просто повторите это, а не двойную петлю.