0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 145
1

Экспорт в Excel

01.05.2019, 20:10. Показов 1639. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! Подскажите как экспортировать данные из DataGridView1 в Excel?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
            ExcelApp.Application.Workbooks.Add(Type.Missing);
            ExcelApp.Columns.ColumnWidth = 15;
 
            ExcelApp.Cells[1, 1] = "ID";
            ExcelApp.Cells[1, 2] = "FIO";
            ExcelApp.Cells[1, 3] = "Pasport";
 
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                for (int j = 0; j < dataGridView1.RowCount; j++)
                {
                    ExcelApp.Cells[j + 2, i + 1] = (dataGridView1[i, j].Value).ToString();
                }
            }
            ExcelApp.Visible = true;
Код ругается на этот участок ExcelApp.Cells[j + 2, i + 1] = (dataGridView1[i, j].Value).ToString();
SQL
1
Ссылка на объект не указывает на экземпляр объекта.
Нужно экспортировать эту таблицу
Экспорт в Excel
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2019, 20:10
Ответы с готовыми решениями:

Экспорт данных из таблицы Excel в шаблон Excel
Добрый день! Проблемка заключается в следующем: В папке debug во вложении есть файл...

Экспорт в Excel
Здраствуйте, подскажите как изменить ширину 1-ой строки 1-го столбца при экспорте в Excel

Экспорт в Excel
Здравствуйте товарищи форумчане! При экспорте данных в Excel столкнулся с небольшой проблемой.. ...

Экспорт данных в Excel
Товарищи, приветствую, практически закончил один из своих первых не комерческих, но достаточно...

3
995 / 354 / 135
Регистрация: 27.10.2006
Сообщений: 764
02.05.2019, 02:31 2
Вместо этого

C#
1
ExcelApp.Cells[j + 2, i + 1] = (dataGridView1[i, j].Value).ToString();
надо

C#
1
ExcelApp.Cells[j + 2, i + 1] = dataGridView1[i, j].Value;
А так же

Объектная модель Excel такая: Приложение Excel - книга - лист - ячейка.
То есть ячейка принадлежит листу, а не Приложению Excel

то есть корректно писать так

C#
1
using Excel = Microsoft.Office.Interop.Excel;
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        Excel.Application xlApp = new Excel.Application(); //Excel
        Excel.Workbook xlWB; // книга
        Excel.Worksheet xlSht; // лист
 
        xlWB = xlApp.Workbooks.Add(); // книга принадлежит Приложению Excel
        xlSht= xlWB.Worksheets[1];  // лист принадлежит книге
 
        xlSht.Cells[1, 1] = "ID";
        xlSht.Cells[1, 2] = "FIO";
        xlSht.Cells[1, 3] = "Pasport";
 
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                for (int j = 0; j < dataGridView1.RowCount; j++)
                {
                    xlSht.Cells[j + 2, i + 1] = dataGridView1[i, j].Value; //ячейка принадлежит листу
                }
            }
            xlApp.Visible = true;
1
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 145
02.05.2019, 08:53  [ТС] 3
Pavel55, Спасибо работает! А как изменить шрифт и размеры столбцов как на скриншоте?
Экспорт в Excel
Экспорт в Excel
0
995 / 354 / 135
Регистрация: 27.10.2006
Сообщений: 764
02.05.2019, 12:56 4
Лучший ответ Сообщение было отмечено ElBarca как решение

Решение

ElBarca, приблизительно вот так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWB = xlApp.Workbooks.Open(@"D:\Программирование\TestExcel.xlsx"); //создать новый файл: xlApp.Workbooks.Add();
Excel.Worksheet xlSht = xlWB.Worksheets["Лист1"]; //укажите имя листа
 
// меняем размер шрифта
xlSht.Range["A1:D1"].Font.Size = 18; // меняем размер шрифта у диапазона A1:D1
// или вся строка
xlSht.Rows[1].Font.Size = 18; // меняем размер шрифта у всей строки 1
 
// меняем ширину столбца
xlSht.Columns[2].ColumnWidth = 20; // меняем ширину только второго столбца (В)
// или автоподбор ширины
xlSht.Columns["A:D"].Autofit(); // автоподбор ширины для столбцов A:D
 
xlSht.Columns[8].NumberFormat = "@"; //меняем формат 8-го столбца на текстовый
 
xlApp.Visible = true; //показать Excel
 
//xlWB.Close(true); //закрыть и сохранить книгу            
//xlApp.Quit(); //закрыть Excel
1
02.05.2019, 12:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2019, 12:56
Помогаю со студенческими работами здесь

Экспорт данных в Excel
Всем доброго времени суток. Столкнулся с такой проблемой, при импорте в Excel, когда заношу...

Экспорт данных в Excel
Самым внизу есть код отрытый отправлается на Excel но не работает в чем ошибка не понимаю ? ...

Экспорт данных в Excel
Необходимо из БД (mysql) ежедневно формировать отчеты по указанным формам. В Report Viewer...

Экспорт данных в Excel
Добрый день! Помогите, пожалуйста: как Экспортировать данные из программы C# в Excel. Заранее...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru