Урок по C# - Экспорт из DataGridView в Excel

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 มิ.ย. 2020
  • Всем привет! продолжаем наши уроки по C# + mySQL и сегодня мы будем выгружать данные из DataGridView в Excel нажатием одной (двух) кнопок! :) Иногда просто требуется реализовать экспорт в Excel из C# проекта. Да и Excel есть практически на любом компьютере, а если ваш софт ещё и занимается подключением к бд для вытаскивания нужной инфы?? В общем экспорт сделать на самом деле не сложно, достаточно посмотреть это видео которое научит вас делать экспорт из c# в excel при условиях, что вы заранее не знаете сколько будет у вас строк и столбцов!
    Приятного просмотра, обязательно лайк поставь и подпишись на канал,если ещё не подписан )
    Всякие ссылки:
    Группа в вк 👉🏻 zvdkit
    Группа в вк игровая 👉🏻 zvdkgames
    Конкурс 👉🏻 zvdkgames?w=wall-11594...
    Игровой канал 👉🏻 / @zombievdkgames
    Проект из урока👇🏻
    drive.google.com/file/d/15Ejn...
    Другие интересные видео👇🏻
    👉🏻 Кто удалил файлы с сервера. Настройка политик, MySQL + Программа WDMF ( ͡° ͜ʖ ͡°) • Кто удалил файлы с сер...
    👉🏻 Урок по C# - ПОДКЛЮЧЕНИЕ К БД MySQL ЧЕРЕЗ C# 👨‍💻 • Урок по C# - ПОДКЛЮЧЕН...
    👉🏻 Урок по C# - ЗАПРОС К БД MySQL. ВЫВОД ДАННЫХ В DATAGRIDVIEW. СКРИПТ ИЗ RICHTEXTBOX • Урок по C# - ЗАПРОС К ...
    👉🏻 Улучшение звука для стримов. Фильтры в OBS. Дорогой и дешевый микрофон. Лучшие фильтры в OBS! • Улучшение звука для ст...

ความคิดเห็น • 55

  • @zombievdkofficial
    @zombievdkofficial  2 ปีที่แล้ว

    вышла вторая часть урока с некоторыми дополнениями:
    th-cam.com/video/WudCnkg80Ps/w-d-xo.html

    • @user-ge1ho7hu5m
      @user-ge1ho7hu5m 2 ปีที่แล้ว

      Привет такой вопрос, мне нужно чтобы данные с интерфейса на C# выгружались в excel с обработкой, нужно чтобы был, Счетчик и нахождение среднего, это реально реализовать, сейчас он у меня выводит данные в excel может по дням, неделям, месяцам, но нужно чтобы бала сортировка под каждой машиной например за день выходила строчка с нахождением сколько было сделано рейсов и и в черырёх колонках находилась среднее значение. Это реально реализовать? у меня просто уже мозги текут

  • @sergeysemkin6570
    @sergeysemkin6570 2 ปีที่แล้ว +4

    Господи, Мужик! Ты спас мой анус от взрыва. На официальном сайте нашёл пример кода на дох*я строк и тот не запустился.
    А судя по твоему видосу стало понятно, что дело в Excel, точнее в его отсутствии, ну и сократил код до 10 строчек😁😁😁

  • @Krake_Danson
    @Krake_Danson 3 ปีที่แล้ว +1

    Подписка. В нужный момент очень помог этим тутором.

  • @vladtretyak108
    @vladtretyak108 2 ปีที่แล้ว

    Лучший! Спасибо.

  • @user-yo7mw6oj4p
    @user-yo7mw6oj4p 4 ปีที่แล้ว +1

    Ай молодца)))

  • @eugenykad4069
    @eugenykad4069 3 ปีที่แล้ว

    Спасибо большое

  • @upjedo
    @upjedo 2 ปีที่แล้ว +3

    Выручил очень сильно первым и вторым роликом. Огромное спасибо!
    Только у меня выводилась одна строка из двух. Последняя строка "съедается".
    Надо было поменять "2" на "1" в строке:
    for (i = 0; i

    • @KonoSekich69
      @KonoSekich69 ปีที่แล้ว +1

      for (j = 0; j < dataGridView1.ColumnCount; j++) мне помогло

  • @user-ve3tb8hz3w
    @user-ve3tb8hz3w ปีที่แล้ว

    👍👍👍

  • @user-tz5sw6tp8h
    @user-tz5sw6tp8h 3 ปีที่แล้ว +1

    Спасибо большое! Очень помог (Я чайник)

  • @user-ql8mm4sb6z
    @user-ql8mm4sb6z 6 หลายเดือนก่อน

    А как передать цвет ячеек из документа Excel в таблицу DataGridView C# ? Помогите пожалуйста решить эту задачу ! Спасибо ! ! !

  • @dch7314
    @dch7314 3 ปีที่แล้ว

    Я работою через WPF, вылезает ошибка: "Не удается применить индексирование через [] к выражению типа "DataGrid".", не знаю как ее исправить...
    Заранее спасибо.

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว

      Wpf значительно отличается от winforms

  • @akyla1337
    @akyla1337 11 หลายเดือนก่อน +2

    Здарова, у меня вместо нормальных данных записанных в таблице выводится что то не понятное. Как это пофиксить, во всех столбцах вот эта шляпа(DataGridViewTextBoxCell { ColumnIndex=0, RowIndex=1 })

    • @Ivan_Kovalev
      @Ivan_Kovalev 11 หลายเดือนก่อน +2

      Та же проблема, не могу разобраться(

    • @akyla1337
      @akyla1337 11 หลายเดือนก่อน +2

      Спасибо, бро. Помог, все исправил)

    • @Ivan_Kovalev
      @Ivan_Kovalev 11 หลายเดือนก่อน +1

      Теперь все тоже работает))))

  • @KiLLaTeA
    @KiLLaTeA 3 ปีที่แล้ว

    При выполнении кода, excel файл появляется по счёту 17-ым (т.е. Книга 17). А когда захожу в диспетчер задач, там уже висят остальные 16 книг excel и приходиться убирать их вручную.
    Как это исправить?

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว

      Значит где то у тебя кривой цикл который создаёт лишние копии Excel

    • @KiLLaTeA
      @KiLLaTeA 3 ปีที่แล้ว

      @@zombievdkofficial Спасибо за быстрый ответ, но я уже пофиксил ошибку

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว

      @@KiLLaTeA :)

  • @user-mo9xb8fg2k
    @user-mo9xb8fg2k ปีที่แล้ว

    Як зробити так щоб середня колонка не виводилась?

  • @allagalperina1160
    @allagalperina1160 3 ปีที่แล้ว

    Почему то у меня не работает код, хотя сделала все в точности. на строке wsh.Cells[i + 1, j + 1] = dataGridView1[j, i].Value.ToString(); выходит ошибка System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." Как можно пофиксить?

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว

      Значит какой то аргумент нулевой вот и ошибка лезет.

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว +1

      в описании к видео есть ссылка на проект, можешь его скачать и посмотреть, возможно станет понятнее :)

  • @thomassawyer8893
    @thomassawyer8893 2 ปีที่แล้ว

    Как сохранять заголовки столбцов?

    • @zombievdkofficial
      @zombievdkofficial  2 ปีที่แล้ว +4

      Если делали по проекту из видоса, то достаточно в цикл экспорта в excel добавить строчку:
      wsh.Cells[1, j + 1] = dgv.Columns[j].HeaderText.ToString();
      добавляется в цикл for и первая строчка файла excel будет заполнена именами столбцов из DataGridView

  • @zickc246
    @zickc246 3 ปีที่แล้ว +1

    Можно ли выгрузить с названием столбцов?

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว

      Скорее всего можно, но как это сделать не смогу подсказать )

    • @zickc246
      @zickc246 3 ปีที่แล้ว +7

      Если кому нужны будут еще и названия столбцов, то welcome :)
      private void button6_Click(object sender, EventArgs e)
      {
      if (dataGridView1.Rows.Count > 0)
      {
      Microsoft.Office.Interop.Excel.Application exApp = new Microsoft.Office.Interop.Excel.Application();
      exApp.Workbooks.Add();
      Microsoft.Office.Interop.Excel.Worksheet wsh = (Microsoft.Office.Interop.Excel.Worksheet)exApp.ActiveSheet;
      int i, j;
      for (i = 0; i

    • @zombievdkofficial
      @zombievdkofficial  2 ปีที่แล้ว +2

      @@zickc246 есть более изящный способ, недавно сделал. Твой вариант подразумевает статичные имена стоблцов, я предлагаю вариант для динамичных данных )
      private void button6_Click(object sender, EventArgs e)
      {
      if (dataGridView1.Rows.Count > 0)
      {
      Microsoft.Office.Interop.Excel.Application exApp = new Microsoft.Office.Interop.Excel.Application();
      exApp.Workbooks.Add();
      Microsoft.Office.Interop.Excel.Worksheet wsh = (Microsoft.Office.Interop.Excel.Worksheet)exApp.ActiveSheet;
      int i, j;
      for (i = 0; i

  • @user-proger88
    @user-proger88 2 ปีที่แล้ว

    Все круто, но мелко

  • @katyamedvedeva7499
    @katyamedvedeva7499 3 ปีที่แล้ว

    почему у меня ничего в поиске не находит по запросу Microsoft.Office? просто пусто

    • @Krake_Danson
      @Krake_Danson 3 ปีที่แล้ว

      попробуй конкретно в "Обзор" зайти и по компьютеру поискать. У меня только так нашло эту либу.

  • @Quarantinevlr
    @Quarantinevlr 3 ปีที่แล้ว

    Выдает ошибку System.IO.FileNotFoundException: "Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. Не удается найти указанный файл."
    Как фиксить?

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว

      Очевидно не хватает ссылок на сборку от офиса) добавлять в проект через references

    • @Quarantinevlr
      @Quarantinevlr 3 ปีที่แล้ว

      @@zombievdkofficial Прикольно, что у меня пропал список ссылок. Есть только зависимости, в котором COM

    • @strangersailor3287
      @strangersailor3287 3 ปีที่แล้ว

      @@Quarantinevlr смог пофиксить?

    • @Quarantinevlr
      @Quarantinevlr 3 ปีที่แล้ว

      @@strangersailor3287 неа, тупо пропал список ссылок

  • @cubemalevich
    @cubemalevich ปีที่แล้ว

    Приветствую автор, не надеюсь, что ты сможешь помочь, но все же решил попробовать. В общем, мне визуалка выкидывает ошибку на моменте, где мы в цикле присваиваем значение datagridview worksheet'у, System.NullReferenceException: "Object reference not set to an instance of an object." System.Windows.Forms.DataGridViewCell.Value.get вернул null. все сделал в точности как у тебя, но почему-то не работает(

    • @zombievdkofficial
      @zombievdkofficial  ปีที่แล้ว

      Где то из таблицы летит null а то время как его не ждут. Пустые графы в строчках есть? По хорошему налог обработать получение нуля и что то сделать)

  • @Loanina
    @Loanina ปีที่แล้ว

    Делала через DataTable и выскакивает эта ошибка : System.InvalidCastException: "Невозможно привести COM-объект типа "Microsoft.Office.Interop.Excel.ApplicationClass" к интерфейсному типу "Microsoft.Office.Interop.Excel._Application". Операция завершилась со сбоем, поскольку вызов QueryInterface COM-компонента для интерфейса с IID "{000208D5-0000-0000-C000-000000000046}" возвратил следующую ошибку: Ошибка при загрузке библиотеки. (Исключение из HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))." ни разу такой не видела даже не знаю что делать

    • @zombievdkofficial
      @zombievdkofficial  ปีที่แล้ว

      может это даст ответы. ru.stackoverflow.com/questions/818471/%D0%9D%D0%B5%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%81%D1%82%D0%B8-com-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-%D1%82%D0%B8%D0%BF%D0%B0-microsoft-office-interop-word-applicationcla

  • @Blastpv
    @Blastpv 3 ปีที่แล้ว

    а как добавить в заготовленные столбцы?

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว

      прописать каждый столбец отдельно и заполнять строки, но зачем это надо? суть механизма в том, чтоб из программы выгрузить данные которые могут быть рандомными в новый файл, а не в существующий

    • @Blastpv
      @Blastpv 3 ปีที่แล้ว

      @@zombievdkofficial на тот случай, когда нужно в существующий файл выгрузить )

    • @zombievdkofficial
      @zombievdkofficial  3 ปีที่แล้ว

      @@Blastpv мне такое не требовалось, поэтому даже не пробовал, чисто в теории можно. Называешь столбцы и начинаешь заполнять циклом не с 1 ячейки, а со 2,например. Но либо должен быть стандарт такого файла либо как-то считывать его через C#, но это уже совсем другая история )

    • @Blastpv
      @Blastpv 3 ปีที่แล้ว

      @@zombievdkofficial спасибо. Попробую)

  • @LATAR123123123123
    @LATAR123123123123 ปีที่แล้ว

    Interop.Excel это полная шляпа, которая к тому же требует обязательно установленного офиса на ПК ну и плюс, глюки, мега медленная скорость работы с ячейками (особенно если нужно выгружать больше 10-20к строк и 10-20 столбцов в файл) потому то нормальные люди не юзают Interop априори...)))

    • @zombievdkofficial
      @zombievdkofficial  ปีที่แล้ว

      Альтернатива для выгрузки в Excel?

  • @veritas8961
    @veritas8961 2 ปีที่แล้ว

    System.MissingMemberException: "Ошибка при вызове "[PROPERTYGET, DISPID(0)]"."

    • @zombievdkofficial
      @zombievdkofficial  2 ปีที่แล้ว

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

    • @veritas8961
      @veritas8961 2 ปีที่แล้ว

      @@zombievdkofficial уже пофиксили. Немного другим способом экспорт сделали)