<MyRusakov.ru />

Финансовая грамотность от А до Я

Финансовая грамотность от А до Я

Данный курс в кратчайшие сроки обучит Вас финансовой грамотности. Эти знания позволят Вам получить, как минимум, серьёзную финансовую стабильность, а, как максимум, финансовую независимость.

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

Помимо самого курса Вас ждёт ещё бесплатный ценный Бонус: «Ранний выход на пенсию». В рамках этого Бонуса Вы узнаете, какой должен быть капитал конкретно в Вашем случае, варианты его получения, а также какие есть стратегии вывода капитала на пенсии и где их можно протестировать.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Преобразование содержимого табличного объекта DataGridView в CSV в C#

Преобразование содержимого табличного объекта DataGridView в CSV в C#

Доброго времени суток! Сегодня в статье мы рассмотрим с Вами как экспортировать данные из таблицы DataGridView в формат CSV.

Элемент DataGridView в C# - это элемент пользовательского интерфейса, который предоставляет настраиваемую таблицу для отображения данных.

Код примера:


// это extension-метод, т.е. метод расширение, который мы можем вызывать на объекте класса DataGridView через точку
public static void WriteToCSVFile(this DataGridView gridView, char seperator, string filename, Encoding encoding)
{
    using (var writer = new StreamWriter(filename, false, encoding))
    {

        for (int i = 0; i < gridView.Columns.Count; i++)
        {
            // пропускаем колонки таблицы, которые скрыты
            if (!gridView.Columns[i].Visible) continue;

            // записываем заголовок таблицы в файл
            writer.Write(gridView.Columns[i].HeaderText);

            // пока не достигли последней колонки в строке
            if (i < gridView.Columns.Count - 1)
            {
                // вставляем разделитель
                writer.Write(seperator);
            }
        }

        // добавляем перевод строки
        writer.Write(Environment.NewLine);


        // проходимся по каждой строчке
        foreach (DataGridViewRow dr in gridView.Rows)
        {
            for (int i = 0; i < gridView.Columns.Count; i++)
            {
                // пропускаем колонки таблицы, которые скрыты
                if (!gridView.Columns[i].Visible) continue;

                // записываем значение ячейки строки в файл
                writer.Write(dr.Cells[i].Value);

                // пока не достигли последней колонки в строке
                if (i < gridView.Columns.Count - 1)
                {
                    // вставляем разделитель
                    writer.Write(seperator);
                }
            }

                // добавляем перевод строки
            writer.Write(Environment.NewLine);
        }

        writer.Flush();
    }
}

Используем так:


// запускаем задачу в отдельном потоке, так как операция экспорта может занять 
// длительное время
Task.Run(() =>
{
    // вызываем метод-расширение через точку на объекте QueryResultDataGridView
    // кодировка файла будет Win-1251
    QueryResultDataGridView.WriteToCSVFile(';', "export.csv", Encoding.GetEncoding(1251));

    DialogResult dialogResult = MessageBox.Show(
        "Экспорт завершен! Вы хотите открыть файл в редакторе?",
        Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information
    );

    // если ок, открываем в редакторе данного типа файлов в Вашей ОС по умолчанию
    if (dialogResult == DialogResult.Yes)
    {
        Process.Start("export.csv");
    }
});

Таким образом, с помощью метода расширения WriteToCSVFile из DataGridView можно экспортировать в CSV относительно большие файлы, насчитывающие от нескольких сотен до несколько сотен тысяч строк.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.