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

Экспорт данных в Excel из DataGridView

23.07.2010, 09:55. Показов 12514. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Думаю тема многим знакома потому, что почти каждый третий работающий в С# сталкивался, рано или поздно, с работой с Excel.

Так вот. Проблема в том, что я не могу данные полученные при запросе сунуть в Excel. А инфы работы с Excel в С# найти нигде не могу. В основном все он'лайн уроки на VisualBasik. А код работы на VisualBasik не могу перевести на С#. Все остальные уроки переводил нормально, а вот этот урок не получается сделать.

Пожалуйста, подскажите где можно почитать инфу про это на С#. Если есть возможность, то дайте код.

Заранее благодарен.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.07.2010, 09:55
Ответы с готовыми решениями:

Экспорт данных из DataGridView в Excel
Помогите пожалуйста, я экспортировала данные из datagridview в эксель, затем по этим данным в экселе сделала диаграмму, но когда по новой...

Экспорт данных из Excel-я в DataGridView
Здравствуйте друзья Как реализовать экспорт данных из экзеля в datagridview.

Экспорт данных из datagridview в Excel
Всем привет! Может кто-нибудь подсказать как сделать "Экспорт данных их datagridview в Exel", то есть имеется сетка с данными и при...

6
Padawan
 Аватар для Johnny_D
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
23.07.2010, 10:05
Пользуйтесь поиском
0
1 / 1 / 0
Регистрация: 29.06.2010
Сообщений: 14
30.07.2010, 06:53  [ТС]
От поисковика мало толку.

Мне нужен код примерно такого типа, НО НАПИСАННОГО ДЛЯ GridView:

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
SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, connectionString);
            DataTable dataTable = new DataTable();
            dataAdapter.SelectCommand.CommandTimeout = 300;
            dataAdapter.Fill(dataTable);
            int RowsCount = dataTable.Rows.Count;
            int ColumnsCount = dataTable.Columns.Count;
            object[,] dataArray = new object[RowsCount, ColumnsCount];
            for (int i = 0; i < RowsCount; i++)
                for (int j = 0; j < ColumnsCount; j++)
                    dataArray[i, j] = dataTable.Rows[i][j];
 
            ExcelApp = new Excel.Application();
            ExcelApp.DisplayAlerts = false;
            ExcelApp.Visible = false;
            string templateFile = Directory.GetCurrentDirectory() + @"\WRTemplate.xls"; 
 /*а это шаблон, куда нужно втсавить данные (т.е. нужно сделать шаблон Excel файла
 ну и Directory.GetCurrentDirectory() говорит, что файл шаблона будет в этой же папке
 можно и абсолютный путь написать, вобщем как будет угодно*/
            ExcelApp.Workbooks.Open(templateFile, Type.Missing, Type.Missing,
                                    Type.Missing, Type.Missing, Type.Missing,
                                    Type.Missing, Type.Missing, Type.Missing,
                                    Type.Missing, Type.Missing, Type.Missing,
                                    Type.Missing, Type.Missing, Type.Missing);
            ExcelWorkbooks = ExcelApp.Workbooks;
            ExcelWorkbook = ExcelWorkbooks[1];
            ExcelSheets = ExcelWorkbook.Worksheets;
            ExcelWorksheet = (Excel.Worksheet)ExcelSheets.get_Item(1);
            getHeader();
            ExcelWorksheet.PageSetup.CenterHeader = headerString;
            ExcelCells = ExcelWorksheet.get_Range("B7", "T16"); // верхняя левыя ячейка, куда данные вставлять
 
            ExcelCells.Value2 = dataArray;
            ExcelWorksheet.Columns.AutoFit();
            string reportFile = Directory.GetCurrentDirectory() + @"\Название_файла_кот._сохраняем.xls";
    /* не в шаблон жеж данные сохранять :) */                        
            ExcelWorkbook.SaveAs(reportFile, Excel.XlFileFormat.xlWorkbookNormal,
                                 Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                 Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing,
                                 Type.Missing, Type.Missing, Type.Missing, Type.Missing);
 
            ExcelApp.Quit();
У самого не получается этот код переделать для GridView. Пожалуйста помогите.
1
 Аватар для andrew_w2k
341 / 341 / 90
Регистрация: 04.03.2010
Сообщений: 648
30.07.2010, 08:26
Лучший ответ Сообщение было отмечено как решение

Решение

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using Excel = Microsoft.Office.Interop.Excel; 
 
namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection cnn ;
            string connectionString = null;
            string sql = null;
 
            connectionString = "data source=servername;initial catalog=databasename;user id=username;password=password;";
            cnn = new SqlConnection(connectionString);
            cnn.Open();
            sql = "SELECT * FROM Product";
            SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
            DataSet ds = new DataSet();
            dscmd.Fill(ds);
 
            dataGridView1.DataSource = ds.Tables[0];
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Excel.Application xlApp ;
            Excel.Workbook xlWorkBook ;
            Excel.Worksheet xlWorkSheet ;
            object misValue = System.Reflection.Missing.Value;
 
            xlApp = new Excel.ApplicationClass();
            xlWorkBook = xlApp.Workbooks.Add(misValue);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            int i = 0;
            int j = 0; 
 
            for (i = 0; i <= dataGridView1.RowCount  - 1; i++)
            {
                for (j = 0; j <= dataGridView1.ColumnCount  - 1; j++)
                {
                    DataGridViewCell cell = dataGridView1[j, i];
                    xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
                }
            }
 
            xlWorkBook.SaveAs("csharp.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();
 
            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);
 
            MessageBox.Show("Excel file created , you can find the file c:\\csharp.net-informations.xls");
        }
 
        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }
 
    }
}
Из первых пяти ссылок, предоставленных Google по запросу "Excel C# Grid";
http://csharp.net-informations... idview.htm
6
1 / 1 / 0
Регистрация: 29.06.2010
Сообщений: 14
30.07.2010, 11:12  [ТС]
Спасибо andrew_w2k что помог найти инфу!! Сам бы не справился. Редко хожу по иностранным сайтам. Все сделал, все получилось!!!)) Оказалось что все делается проще чем то, что я делал.

andrew_w2k держи заслуженный +1!!))
0
13 / 13 / 0
Регистрация: 26.01.2010
Сообщений: 96
09.09.2011, 09:24
Долги, ли отрабатывается такой цикл?
В VBA было б долго, если цикл например 100 >=i и j<=100.
0
13 / 13 / 0
Регистрация: 26.01.2010
Сообщений: 96
12.09.2011, 19:14
так понятно
Тут используется перебор. Честно говоря это долго получилось. посмотрю что и как можно сделать.
Но пока вопрос такой. При исполнении этой строчки
C#
1
xlWorkBook.SaveAs("csharp.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
если файл с таким именем уже есть, то выкидывается вопрос перезаписать? Да, нет, отмена.
Можно ли как-нибудь убрать это?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.09.2011, 19:14
Помогаю со студенческими работами здесь

Экспорт данных из dataGridView в Excel?
Я вывожу запросом данные из базы в dataGridView (на русунке ) хочу вывести эти данные в Excel как показано на изображении. Можно такое...

Экспорт данных в Excel из DataGridView
Экспорт данных в Excel из DataGridView. Как это делается помогите пожалуйста? Из БД Экспорт получается но я хотел после компиляции из...

Экспорт данных из файла Excel в DataGridView
Нашел код для загрузки данных Excel в таблицу DataGridView: private void завантажитиToolStripMenuItem_Click_1(object sender,...

Datagridview экспорт в Excel и исключение некоторых данных
Привет, вот я так экспортирую из datagridview в Excel private void ecxelToolStripMenuItem_Click(object sender, EventArgs e) { ...

Экспорт данных из DataGridView в существующий Excel
Доброго времени суток. Прошу вас помочь с одной проблемой. У меня есть код который по нажатию кнопки создает аналогичную таблицу в exel...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru