Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 29
1

Выгрузка данных из БД в excel

28.01.2020, 13:40. Просмотров 2072. Ответов 7
Метки нет (Все метки)

Итак есть вывод данных в excel но она заполняется с перовой строчки, а нужно что б началась заполнять с 4.
Выгрузка данных из БД  в excel
Выгрузка данных из БД  в excel
Выгрузка данных из БД  в excel
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2020, 13:40
Ответы с готовыми решениями:

Выгрузка данных в Excel
Здравствуйте! Помогите реализовать выгрузку данных в Excel. Задумка такая. Есть форма, на ней DGV...

Выгрузка данных в Excel из Datatable
Долго мучался, в итоге имею следующее: ошибки и код. Подскажи пожалуйста в чем ошибки, почему код...

Выгрузка данных в Excel на стороне клиента
Здравствуйте. Подскажите пожалуйста как выгружать данные из бд в excel таким образом, чтобы...

Выгрузка данных в Excel
Добрый день! Посмотрите пожалуйста. Есть в обработке таблица значений, в которую я выгружаю данные...

7
Почтальон
28.01.2020, 13:48
  #2
 Комментарий модератора 
айнур2310, Запрещено выкладывать код в виде картинки, сделайте по-нормальному.
0
1297 / 758 / 285
Регистрация: 17.05.2015
Сообщений: 2,908
28.01.2020, 13:54 3
Цитата Сообщение от айнур2310 Посмотреть сообщение
она заполняется с перовой строчки, а нужно что б началась заполнять с 4
возможно, наверно, нужно... присваивать первоначальные значение i и j не 0, а 4?!?!?!?!
Не?
0
923 / 338 / 135
Регистрация: 27.10.2006
Сообщений: 763
28.01.2020, 13:55 4
в этой строке замените 0 на 3
C#
1
for (i = 0; i < dataGridVeiw2.Rows.Count; i++)
чтобы получилось так

C#
1
for (i = 3; i < dataGridVeiw2.Rows.Count; i++)

тогда ваша строка ExcelApp.Cells[i + 1, j + 1] = dataGridView2.Rows[i].Cells[j].Value; будет корректно заполнять данные в Excel начиная с 4-й сроки (3 + 1 = 4)

Cells() в Excel работает так - Cells(номер_строки, номер_столбца).

Если вы ранее писали i = 0, то 0 плюс 1 в этой строке ExcelApp.Cells[i + 1, j + 1] давало первую строку.

P.S. j изменять не надо. Иначе у вас с 4-го столбца начнут заполняться данные
0
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 29
28.01.2020, 15:09  [ТС] 5
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
Object missing = Type.Missing;
            Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook ExcelWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet ExcelWorkSheet;
            //Книга.
            ExcelWorkBook = ExcelApp.Workbooks.Add(System.Reflection.Missing.Value);
            //Таблица.
 
            ExcelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ExcelWorkBook.Worksheets.get_Item(1);
            ExcelWorkSheet.Cells[1, 1] = "Поликлиника";
            ExcelWorkSheet.Cells[2, 1] = "Пациент";
            ExcelWorkSheet.Cells[3, 1] = "Код пациента";
            ExcelWorkSheet.Cells[3, 2] = "ФИО";
            ExcelWorkSheet.Cells[3, 3] = "Пол";
            ExcelWorkSheet.Cells[3, 4] = "Дата рождения";
            ExcelWorkSheet.Cells[3, 5] = "Адрес";
            ExcelWorkSheet.Cells[3, 6] = "Паспорт";
            ExcelWorkSheet.Cells[3, 7] = "Телефон";
            ExcelWorkSheet.Cells[3, 8] = "Номер ОМС";
            ExcelWorkSheet.Cells[3, 9] = "Снилс";
 
            for (int i = 4; i < dataGridView2.Rows.Count; i++)
            {
                for (int j = 0; j < dataGridView2.ColumnCount; j++)
                {
                    ExcelApp.Cells[i + 1, j + 1] = dataGridView2.Rows[i].Cells[j].Value;
 
                }
            }
            (ExcelWorkSheet.Cells[1, 1] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[1, 1] as Microsoft.Office.Interop.Excel.Range).Font.Size = 12;
            (ExcelWorkSheet.Cells[2, 1] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[2, 1] as Microsoft.Office.Interop.Excel.Range).Font.Size = 12;
            (ExcelWorkSheet.Cells[3, 1] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[3, 2] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[3, 3] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[3, 4] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[3, 5] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[3, 6] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[3, 7] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[3, 8] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
            (ExcelWorkSheet.Cells[3, 9] as Microsoft.Office.Interop.Excel.Range).Font.Bold = true;
 
            Microsoft.Office.Interop.Excel.Range oRange;
            oRange = ExcelWorkSheet.Range[ExcelWorkSheet.Cells[2, 1], ExcelWorkSheet.Cells[2, 3]];
            oRange.Merge(Type.Missing);
            Microsoft.Office.Interop.Excel.Range oRange1;
            oRange1 = ExcelWorkSheet.Range[ExcelWorkSheet.Cells[1, 1], ExcelWorkSheet.Cells[1, 3]];
            oRange1.Merge(Type.Missing);
 
            (ExcelWorkSheet.Cells[3, 2] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[3, 3] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[3, 4] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[3, 5] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[3, 6] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[3, 7] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[3, 8] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[3, 9] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
 
 
            (ExcelWorkSheet.Cells[4, 1] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[4, 2] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[4, 3] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[4, 4] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[4, 5] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[4, 6] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[4, 7] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[4, 8] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
            (ExcelWorkSheet.Cells[4, 9] as Microsoft.Office.Interop.Excel.Range).EntireColumn.AutoFit();
 
            (ExcelWorkSheet.Cells[1, 1] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[1, 2] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[1, 3] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
 
            (ExcelWorkSheet.Cells[1, 3] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
 
            (ExcelWorkSheet.Cells[1, 1] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[1, 1] as Microsoft.Office.Interop.Excel.Range).HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
 
            (ExcelWorkSheet.Cells[2, 1] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 2] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 3] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 4] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 5] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 6] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 7] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 8] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 9] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
 
            (ExcelWorkSheet.Cells[2, 3] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
 
 
            (ExcelWorkSheet.Cells[2, 1] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[2, 1] as Microsoft.Office.Interop.Excel.Range).HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
 
            (ExcelWorkSheet.Cells[3, 1] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 2] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 3] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 4] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 5] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 6] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 7] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 8] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 9] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
 
            (ExcelWorkSheet.Cells[3, 1] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 9] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
 
            (ExcelWorkSheet.Cells[3, 1] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 2] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 3] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 4] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 5] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 6] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 7] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 8] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            (ExcelWorkSheet.Cells[3, 9] as Microsoft.Office.Interop.Excel.Range).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            //Вызываем нашу созданную эксельку.
            ExcelApp.Visible = true;
            ExcelApp.UserControl = true;
0
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 29
28.01.2020, 15:13  [ТС] 6
вот что теперь , все ровно не с первой
0
Миниатюры
Выгрузка данных из БД  в excel  
681 / 543 / 242
Регистрация: 04.08.2015
Сообщений: 1,496
28.01.2020, 17:53 7
Здесь
Цитата Сообщение от айнур2310 Посмотреть сообщение
C#
1
2
3
4
5
6
7
for (int i = 4; i < dataGridView2.Rows.Count; i++)
{
    for (int j = 0; j < dataGridView2.ColumnCount; j++)
    {
         ExcelApp.Cells[i + 1, j + 1] = dataGridView2.Rows[i].Cells[j].Value;
    }
}
нужно в Excel начинать нумерацию с 4 для строк, а не в dataGridView.
0
923 / 338 / 135
Регистрация: 27.10.2006
Сообщений: 763
30.01.2020, 12:42 8
введите в код новую переменную, которая будет отвечать за нумерацию строк в Excel, как пример,

C#
1
2
3
4
5
6
7
8
9
int CounterRow = 4; //переменная для начальной строки в Excel
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
    for (int j = 0; j < dataGridView2.ColumnCount; j++)
    {
         ExcelApp.Cells[CounterRow, j + 1] = dataGridView2.Rows[i].Cells[j].Value;
         CounterRow++; //увеличивает переменную на 1, для последующей записи 
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2020, 12:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Выгрузка данных из Excel в Ibexpert
Ребята, помогите! надо выгрузить данные из экселя в Ibexpert. можно просто в массив. не...

Выгрузка данных из Delphi в Excel
Делаю выгрузку данных через процедуру SendtoExcel. При заполнении массива пишу следующий код:...

Выгрузка данных с Firebird в Excel
Возникла проблема с выгрузкой данных в ексель из базы данных на Firebird. Есть таблица Стобец...

Выгрузка данных из Access в Excel
Здравствуйте форумчане! Подскажите в Access есть возможность выгрузить данные в Excel, как у меня в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.