Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/124: Рейтинг темы: голосов - 124, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 12

Сохранение из DataGridView в Excel

04.12.2013, 00:07. Показов 25781. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте, работаю в Visual 2013
возникла проблема, на форме есть грид и меню сверху с пунктами открыть, сохранить и т.д.
и вот никак не могу понять, как сделать так, чтобы все данные, которые я введу в грид сохранить в файл эксель нажав кнопку сохранить в меню
подскажите что написать, вот мой код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
        }
 
        private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (SaveFileDialog SaveFileDialog = new SaveFileDialog())
            SaveFileDialog.Filter = "Файлы Excel (*.xls; *.xlsx) | *.xls; *.xlsx";
            saveFileDialog1.ShowDialog();
            
        }
 
        private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
          
        }
 
        private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Файлы Excel (*.xls; *.xlsx) | *.xls; *.xlsx";
            openFileDialog.ShowDialog();
        }
 
        public object FileName { get; set; }
    }
}
Добавлено через 10 часов 28 минут
ну хоть кто нибудь, позарез надо узнать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2013, 00:07
Ответы с готовыми решениями:

DataGridView Сохранение данных в Excel
Доброе время суток. Возник вопрос. Сохраняю данные таким способом: { Microsoft.Office.Interop.Excel.Application ExcelApp =...

Сохранение порядка колонок DataGridView при экспорте в Excel
Народ в C# недавно, перерыл все что можно. Проблема в том что у меня в datagridview можно перемещать колонки, после перемещения их...

Экспорт DataGridView в Excel с сохранением формата ячеек DataGridView
Доброго времени. Ситуевина такая: При экспорте dgv в эксель, эксель сам расставляет форматы ячеек как ему понравится, в связи с чем...

15
Заблокирован
04.12.2013, 19:01
1) Заходите в меню ПРОЕКТ, выбираете "Добавить ссылку", на вкладке "COM" находите "Microsoft Excel Object Library", отмечаете его галочкой (если их несколько, отмечаете самый новый), нажимаете ОК.
Пробуете такой код, указав правильный путь к файлу Excel.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Excel.Application excelapp = new Excel.Application();
Excel.Workbook workbook = excelapp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.ActiveSheet;
 
for (int i = 1; i < dataGridView1.RowCount + 1; i++)
{
    for (int j = 1; j < dataGridView1.ColumnCount + 1; j++)
    {
        worksheet.Rows[i].Columns[j] = dataGridView1.Rows[i-1].Cells[j-1].Value;
    }
}
 
excelapp.AlertBeforeOverwriting = false;
workbook.SaveAs(@"C:\ПУТЬ К ФАЙЛУ\файл.xls");
excelapp.Quit();
2) Это что, C++?
0
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 12
04.12.2013, 22:30  [ТС]
Водяной Змей, это C#

пишу этот код и у меня кучу ошибок показывает в нём
0
Заблокирован
04.12.2013, 22:45
кучу ошибок показывает в нём
1) Можно поподробнее?

2) Вы точно сделали вот это?
Заходите в меню ПРОЕКТ, выбираете "Добавить ссылку", на вкладке "COM" находите "Microsoft Excel Object Library", отмечаете его галочкой (если их несколько, отмечаете самый новый), нажимаете ОК.
0
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 12
04.12.2013, 23:46  [ТС]
https://www.cyberforum.ru/atta... 1386186279

это то что осталось, остальное я сам не понял как, но убрал
Миниатюры
Сохранение из DataGridView в Excel  
0
Заблокирован
05.12.2013, 00:02
Ну так сделали Вы это
Заходите в меню ПРОЕКТ, выбираете "Добавить ссылку", на вкладке "COM" находите "Microsoft Excel Object Library", отмечаете его галочкой (если их несколько, отмечаете самый новый), нажимаете ОК.
или нет?
Если нет, то почему? Что у Вас не получилось?

И путь к файлу xls нужно указывать свой, а не какой у меня стоит. Но это уже потом.
0
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 12
05.12.2013, 00:07  [ТС]
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Ну так сделали Вы это
Заходите в меню ПРОЕКТ, выбираете "Добавить ссылку", на вкладке "COM" находите "Microsoft Excel Object Library", отмечаете его галочкой (если их несколько, отмечаете самый новый), нажимаете ОК.
или нет?
Если нет, то почему? Что у Вас не получилось?

И путь к файлу xls нужно указывать свой, а не какой у меня стоит. Но это уже потом.
я это сделал, выбрал Microsoft Excel 12.0 Object Library.. путь к файлу то я укажу, но как быть с этими ошибками
0
Заблокирован
05.12.2013, 00:10
выбрал Microsoft Excel 12.0 Object Library..
Галочку поставили?
Надо было галочку слева от него поставить, чтобы был выбран.
Проверьте ещё раз, стоит ли там галочка.
0
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 12
05.12.2013, 00:11  [ТС]
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Галочку поставили?
Надо было галочку слева от него поставить, чтобы был выбран.
Проверьте ещё раз, стоит ли там галочка.
конечно поставил, всё стоит
0
Заблокирован
05.12.2013, 00:14
Тогда попробуйте добавить вверху перед строкой с namespace вот эту строку.
C#
1
using Excel = Microsoft.Office.Interop.Excel;
1
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 12
05.12.2013, 00:19  [ТС]
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Тогда попробуйте добавить вверху перед строкой с namespace вот эту строку.
C#
1
using Excel = Microsoft.Office.Interop.Excel;
спасибо, заработало, не совсем так как я хотел, но всё же) теперь буду разбираться как открыть этот файл в гриде)
0
4 / 4 / 1
Регистрация: 08.11.2015
Сообщений: 197
23.11.2015, 13:35
Слушай, а можешь скинуть весь код сохранения ?
0
4 / 4 / 1
Регистрация: 08.11.2015
Сообщений: 197
26.11.2015, 20:12
Водяной Змей, а как сделать сохранение без указанного пути, что бы пользователь сам решал где ему сохранять этот файл? Т.Е. что бы программа не была привязана к нему!
workbook.SaveAs(@"C:\ПУТЬ К ФАЙЛУ\файл.xls");
0
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 3
17.11.2016, 23:36
Посмотри про OpenFileDialog.
0
0 / 0 / 0
Регистрация: 07.12.2016
Сообщений: 3
06.06.2017, 20:49
swat111, вы сделали сохранение с самостоятельным выбором пути?
0
36 / 34 / 20
Регистрация: 17.03.2015
Сообщений: 175
08.06.2017, 01:10
Если тема еще актуальна, то хочу поделиться примером реализации сохранения. Может кому нибудь пригодится)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using Excel = Microsoft.Office.Interop.Excel;
 
private Excel.Application excelApp;
private Excel.Workbooks excelWorkbooks;
private Excel.Workbook excelWorkbook;
 
private void theEntryInTheReportFile()
{
    excelApp = new Excel.Application();
    excelApp.Visible = false;
    excelApp.SheetsInNewWorkbook = 1;
    excelApp.Workbooks.Add(Type.Missing);
    excelApp.Columns.ColumnWidth = 30;
    excelApp.Rows.RowHeight = 30;
    excelApp.DisplayAlerts = true;
 
    excelWorkbooks = _excelApp.Workbooks;
    excelWorkbook = _excelWorkbooks[1];
 
    excelWorkbook.Saved = true;
 
    excelApp.DefaultSaveFormat = Excel.XlFileFormat.xlWorkbookNormal;
 
    string path = string.Empty;
    using(SaveFileDialog saveDialog = new SaveFileDialog())
    {
         if(saveDialog.ShowDialog() == DialogResult.OK)
         {
             path = saveDialog.FileName;
             excelWorkbook.SaveAs(path);
             saveToFile(path, dataGridView1, excelApp, excelWorkbook, excelWorkbooks);
         }
    }
}
 
private Excel.Sheets excelSheets;
private Excel.Worksheet excelWorksheet;
private Excel.Range excelRange;
 
private void saveToFile(string pathToFile, DataGridView dbg,
     Excel.Application excelApp, Excel.Workbook excelWorkbook, Excel.Workbooks excelWorkbooks)
{
    try
    {
        excelSheets = excelWorkbook.Worksheets;
        excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(1);
        int i,j;
 
        for(i = 0; i < dbg.Rows.Count; i++)
            for(j = 0; j < dbg.Columns.Count; j++)
            {
                excelRange = (Excel.Range)excelWorksheet.Cell[i, j];
                excelRange.Value2 = dbg.Rows[i].Cells[j].Value.ToString();
            }
    }
    catch(Exception exception)
    {
          MessageBox.Show(exception.ToString(), "Ошибка записи",
                MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    finally
    {
          excelApp.Quit();
    }
}
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2017, 01:10
Помогаю со студенческими работами здесь

Взаимодействие с Excel, передача строки из DataGridView в столбец Excel
Всем привет. Есть DataGridView в котором всего 1 строка и 10 столбцов необходимо передать данные из DataGridView в Excel причем в...

сохранение DataGridView
Здравствуйте. Помогите пожалуйста решить Такой момент: допустим есть у нас таблица с ней итерационно выполняются преобразования ...

Сохранение DataGridView в БД
Ребят как реализовать такую проблему: Я загружаю таблицу из файла Excel при помощи кода: private void button4_Click(object sender,...

Сохранение datagridview
Добрый вечер) возникла проблема при сохранении datagridview(в таблице 3 столбца(, но при сохранении сохраняется только первый столбец, а...

Сохранение DataGridView
Помогите, как сохранить данные в дата грид, если дата грид не связана с бд, а создана автоматически в сишарпе, данные добавляются в нее, а...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru