С Новым годом! Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для kolay_ne
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362

Получить содержимое [i, j] ячейки DataGridView

03.08.2017, 12:04. Показов 1868. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообще я хочу записать табличку в csv файл. Вероятно, есть способ проще, чем бегать по всем ячейкам, и я буду рад, если вы мне его подскажете, но обращение к конкретной ячейке мне тоже нужно...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.08.2017, 12:04
Ответы с готовыми решениями:

Записать содержимое ячейки DataGridView в TextBox
VS2008 база данных access В DataGridView таблица. Состоит из 2х столбцов. Ключа и значения. Как поместить содержимое ячейки (значения) в...

Добавить в название TabPage содержимое ячейки из DataGridView
Доброго времени суток, Есть несколько вопросов: 1.Как добавить в название TabPage содержимое ячейки из DataGridView. 2. При создании...

TStringGrid: получить содержимое ячейки
В общем название темы говорит само за себя. Я не очень хочу рассчитывать по координатам что там было ранее написано, у меня логика...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
03.08.2017, 12:46
Лучший ответ Сообщение было отмечено kolay_ne как решение

Решение

Что-то типа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
  var sb := new StringBuilder;
  sb.AppendLine(dataGridView1.Columns.Cast&<DataGridViewColumn>().Select(title -> title.HeaderText).JoinIntoString(';'));
 
  foreach var r : DataGridViewRow in dataGridView1.Rows do
  begin
    sb.AppendLine(r.Cells.Cast&<DataGridViewCell>.Select(cell -> Format('{0}', cell.Value)).JoinIntoString(';'));
  end;
  
  WriteAllText('2.csv', sb.ToString, Encoding.UTF8);
end;
должно сохранить содержимое dgv в csv-файл.
1
 Аватар для kolay_ne
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362
03.08.2017, 20:22  [ТС]
1. Можно пояснить строку 8 начиная с ".Cast&<DataGridViewCell>..."?
2. Как обратиться к конкретной ячейке?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
03.08.2017, 20:32
Лучший ответ Сообщение было отмечено kolay_ne как решение

Решение

Зачем нужна конкретная ячейка, если csv-файл пишется построчно?

Что именно в строке непонятно? Конвертируем результат, возвращаемый свойством Cells очередной строки грида (это DataGridViewCellCollection) в sequence of DataGridViewCell, для каждого элемента этой последовательности получаем .Value, и объединяем полученные значения в одну строку (разделитель - точка с запятой). Эту строку добавляем в StringBuilder, чтобы потом одним движением записать все строки в файл.

По моему все предельно просто.

Ну, если прямо никак без получения значения отдельной ячейки грида не получится обойтись - то
Pascal
1
var s := dataGridView1.Rows[i].Cells[j].Value.ToString;
1
 Аватар для kolay_ne
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362
04.08.2017, 13:40  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Зачем нужна конкретная ячейка
Не для записи в csv-файл

Добавлено через 5 часов 24 минуты
Цитата Сообщение от volvo Посмотреть сообщение
должно сохранить содержимое dgv в csv-файл
Сохраняет, но добавляет одну лишнюю строчку - ту, которая добавляется на экране, чтобы пользователь мог что-то дописать. При следующем запуске - еще одну строку и так далее. Как удалить последнюю строку из StringBuilder?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
04.08.2017, 13:48
Не надо ничего удалять. Просто не добавляй новую строку:
Pascal
1
2
3
4
5
  foreach var r : DataGridViewRow in dataGridView1.Rows do
  begin
    if not r.IsNewRow then // Вот эту проверку добавь
      sb.AppendLine(r.Cells.Cast&<DataGridViewCell>.Select(cell -> Format('{0}', cell.Value)).JoinIntoString(';'));
  end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.08.2017, 13:48
Помогаю со студенческими работами здесь

Как получить содержимое ячейки памяти
Здравствуйте!!! Необходимо &quot;вытащит&quot; из физической памяти значение переменной но не как не получается на пример a=27 в какой ячейки...

Как получить содержимое каждой ячейки в ListView?
Что мне вписать в этой строке справа, чтобы можно было получить содержимое ячейки: sqlCmd.Parameters.Value = ListView1.Items.????; ...

Получить содержимое ячейки грида по номеру строки и столбца
Собсна,знаю,что можно получить номер строки и столбца элемента в гриде,если известен объект,при помощи методов Grid.GetColumn() и...

ListView. Как получить содержимое каждой ячейки в строке
Добрый день, я новичок. Собственно САБЖ. По-гуглил, перечитал множество тем на форуме, но ничего не подошло. Имеется форма WPF: ...

Как получить содержимое первой ячейки строки по которой кликнули?
Как получить содержимое первой ячейки строки по которой кликнули? Собственно таким кодом получаю все содержимое а надо только значение в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru