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

Загрузить Excel файлы в DGV с определенной строки

26.05.2015, 07:23. Показов 719. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех форумчан. Есть у меня датагрид в форме который берет данные с Excel файла. открывает Excel без проблем но мне надо чтоб датагрид открыл с определенной строки в Excel скажем с 15строки. код ниже отрывает Excel в датагрид. по гуглил но ничего не нашел.

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
 private void openToolStripButton2_Click_1(object sender, EventArgs e)
        {
 
            string str;
            int rCnt;
            int cCnt;
 
            OpenFileDialog opf = new OpenFileDialog();
            opf.Filter = "Файл Excel|*.XLSX;*.XLS";
            opf.ShowDialog();
            System.Data.DataTable tb = new System.Data.DataTable();
            string filename = opf.FileName;
            Microsoft.Office.Interop.Excel.Application ExcelApp = new 
            Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook ExcelWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet ExcelWorkSheet;
            Microsoft.Office.Interop.Excel.Range ExcelRange;
            ExcelWorkBook = ExcelApp.Workbooks.Open(filename, 0, true, 5, "", "", true, 
            Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            ExcelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ExcelWorkBook.Worksheets.get_Item(1);
            ExcelRange = ExcelWorkSheet.UsedRange;
            for (rCnt = 1; rCnt <= ExcelRange.Rows.Count; rCnt++)
            {
                dataGridView1.Rows.Add(1);
                for (cCnt = 1; cCnt <= 33; cCnt++)
                {
                    str = (string)(ExcelRange.Cells[rCnt, cCnt] as Microsoft.Office.Interop.Excel.Range).Text;
                    dataGridView1.Rows[rCnt - 1].Cells[cCnt - 1].Value = str;
                }
                    
            }
            ExcelWorkBook.Close(null, null, null);
            ExcelApp.Quit();
 
            releaseObject(ExcelWorkSheet);
            releaseObject(ExcelWorkBook);
            releaseObject(ExcelApp);
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2015, 07:23
Ответы с готовыми решениями:

Как загрузить текстовый файл с определенной строки и разделить его на столбцы
Добрый вечер, подскажите пожалуйста, как написать макрос загрузки текстового файла. Загрузив его с определенной строки, разделить его на...

Программа должна открывать различные txt файлы и загрузить их в Excel
Доброго всем времени суток.Руководство дало задание разобраться с программкой написанной еще в давние времена и непонятно кем.Программка...

Файлы: редактирование определенной строки
как мне сделать редактирования файла? допустим вместо строки 2 которую я ввел рание записать что-то другое #include &lt;iostream&gt; ...

8
 Аватар для Art
153 / 153 / 56
Регистрация: 20.12.2011
Сообщений: 1,614
26.05.2015, 07:35
anvaro92, если верно понял, то тут
Цитата Сообщение от anvaro92 Посмотреть сообщение
for (rCnt = 1; rCnt <= ExcelRange.Rows.Count; rCnt++)
надо заменить на
C#
1
for (rCnt = 15; rCnt <= ExcelRange.Rows.Count; rCnt++)
переменную цикла, начать не с 1, а с 15, например.
0
0 / 0 / 1
Регистрация: 21.05.2014
Сообщений: 67
26.05.2015, 08:03  [ТС]
Art, ругается "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index" вот где выскочила ошибка
C#
1
dataGridView1.Rows[rCnt - 1].Cells[cCnt - 1].Value = str;
0
 Аватар для Art
153 / 153 / 56
Регистрация: 20.12.2011
Сообщений: 1,614
26.05.2015, 08:07
anvaro92, в файле точно больше, чем 15 строк?
0
0 / 0 / 1
Регистрация: 21.05.2014
Сообщений: 67
26.05.2015, 08:34  [ТС]
Art, да больше. начинается данные с 15го может доходит до 70-80.

Добавлено через 22 минуты
Art, dataGridView1.Rows[rCnt - 1].Cells[cCnt - 1].Value = str;[/quote]
C#
1
[quote="anvaro92;7670344"]dataGridView1.Rows[rCnt - 15].Cells[cCnt - 1].Value = str;[/quote]
0
 Аватар для Art
153 / 153 / 56
Регистрация: 20.12.2011
Сообщений: 1,614
26.05.2015, 08:35
anvaro92, вот так попробуйте:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int t = 15;
            for (rCnt = 1; rCnt <= ExcelRange.Rows.Count; rCnt++)
            {
                dataGridView1.Rows.Add(1);
                for (cCnt = 1; cCnt < 9; cCnt++)
                {
                    str = (string)(ExcelRange.Cells[t, cCnt] as Microsoft.Office.Interop.Excel.Range).Text;
                    dataGridView1.Rows[rCnt].Cells[cCnt].Value = str;
                    
                }
                t++;
            }
            ExcelWorkBook.Close(null, null, null);
            ExcelApp.Quit();
только cCnt < 9; свое условие в цикле поставьте
0
0 / 0 / 1
Регистрация: 21.05.2014
Сообщений: 67
26.05.2015, 08:40  [ТС]
вот так сделал. работает
C#
1
dataGridView1.Rows[rCnt - 15].Cells[cCnt - 1].Value = str;
0
 Аватар для Art
153 / 153 / 56
Регистрация: 20.12.2011
Сообщений: 1,614
26.05.2015, 08:45
anvaro92, да, можно и так.
0
0 / 0 / 1
Регистрация: 21.05.2014
Сообщений: 67
26.05.2015, 08:45  [ТС]
Art, ты не знаешь решение этой проблемы?
Можно ли сделать в DataGridView дательный падеж на ФИО
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2015, 08:45
Помогаю со студенческими работами здесь

Вывод информации из определённой строки листа Excel
доброго времени суток! Imports Microsoft.Office.Interop Public Class Form1 Dim oEx As New Excel.Application Private...

Экспорт данных из запроса Access в Excel-Шаблон с определенной строки
Добрый день, Увожаемые форумчане. У кого нибудь есть готовый пример экспорта данных из запроса Access в уже готовый отформатированный...

Скопировать предыдущие строки перед определенной строкой из текстового файла и вставить их в столбец Excel
Доброго времени суток! У меня есть текстовый файл, вида ... Фильм1 &lt;http://ekinobilet.fond-kino.ru/films/detail&gt; Фильм2 ...

Загрузить данные из БД в DataTable с последующим выводом в DGV
помогите пожалуйста ;) мне нужна чтобы из база данных перенести информацию в datatable а потом отображать эту информацию в dataGridview...

Скопировать часть строки с определенной позиции и определенной длины в другую строку
Ввести с клавиатуры строку. Скопировать часть строки с определенной позиции и определенной длины в другую строку. Номер позиции и...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru