Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2016, 20:25   #1
userrrr
Форумчанин
 
Регистрация: 18.10.2014
Сообщений: 119
По умолчанию Экспорт данных из DataGridView в Excel файл

Делаю так:

Метод:
Код:
 private void ExportToExcel()
         {
             Microsoft.Office.Interop.Excel.Application exApp = new Microsoft.Office.Interop.Excel.Application();
          //   Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
          
             Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
             Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
             //Книга.
             ObjWorkBook = exApp.Workbooks.Add(System.Reflection.Missing.Value);
             //Таблица.
             ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
             exApp.Workbooks.Add();
             Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)exApp.ActiveSheet;
             workSheet.Cells[1, 1] = "x";
             workSheet.Cells[1, 2] = "Prls";
             workSheet.Cells[1, 3] = "Prlspv";
             workSheet.Cells[1, 4] = "Pvihrls";
             int rowExcel = 2; //начать со второй строки.
             for (int i = 0; i < result_grid.Rows.Count; i++)
             {
                 //заполняем строку
                 workSheet.Cells[rowExcel, "A"] = result_grid.Rows[i].Cells["x"].Value;
                 workSheet.Cells[rowExcel, "B"] = result_grid.Rows[i].Cells["Prls"].Value;
                 workSheet.Cells[rowExcel, "C"] = result_grid.Rows[i].Cells["Prlspv"].Value;
                 workSheet.Cells[rowExcel, "D"] = result_grid.Rows[i].Cells["Pvihrls"].Value;
                 ++rowExcel;
                 
             }
             
             string pathToXmlFile;
                 pathToXmlFile = Environment.CurrentDirectory + "\\" + "MyFile.xls";
                 workSheet.SaveAs(pathToXmlFile);
                exApp.Quit();
                 exApp.Visible = true;
                 exApp.UserControl = true;
         }
Потом вызываю его в обработчике событий:
Код:
  private void button2_Click(object sender, EventArgs e)
        {
            ExportToExcel();
        }
В результате работы метода все данные из датагрид экспортируются в экзель и открывается пустая книга.
Вопрос, как изменить код, чтобы:
1. Файл сохранялся не по указанному мой пути а запрашивалось имя и место сохранения.
2. Чтобы при автоматическом открытии книги - открывалась не пустая, а с экспортированными из датагрид данными.
3. Ф экзеле данные получаются как текстовые. Как сделать чтобы были числовые и учесть точки и запятые?
userrrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт данных из Excel в DataGridView (MSVS 2012, C#) Demonikaliysis Помощь студентам 0 21.07.2015 16:38
Экспорт данных из Excel в StringGrid Felicia_ir C++ Builder 2 29.07.2014 18:42
Экспорт данных из Mysql в Excel GreenShuller БД в Delphi 1 14.07.2010 04:15
Экспорт данных из accessa в excel Tolyopa Общие вопросы C/C++ 0 18.05.2010 00:32
Экспорт данных в Excel boakineo Общие вопросы .NET 1 08.01.2010 19:01