С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/30: Рейтинг темы: голосов - 30, средняя оценка - 4.63
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024

Перебор листов Excel: получить значение из текущей клетки

03.03.2015, 18:53. Показов 5931. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PS. Сразу поясню, что у нас в деревне только один комп, в сельсовете, имеет доступ в интернет и на нем нет VisualStudio c#. Поэтому, все вопросы с работы, приходится задавать, переписывая с бумажки в блокнот. Если сделаю сейчас ошибку, то имейте в виду, что просто переписал с ошибкой... но это лирика, вот сам вопрос.

У меня в Экселе много листов с табличками и в коде программы было бы удобнее сделать цикл и в нем перебирать листы с подстановкой, но не получается, вот что я делаю...

C#
1
2
3
4
5
6
7
8
9
...
nRov=3; nKol=3; PodstList=1;
 
Цикл
...
 
sKletkaStr="List"+@PodstList+"".Cells["+@nRov+","+nKol+"].Text;";
sKletka=@sKletkaStr;
...
в переменную sKletkaStr записывается верная строка с учетом подстановки = List1.Cells[3,3].Text;
но не могу понять, как мне в переменной sKletka получить значение из текущей клетки Экселя? Если бы я написал, просто без подстановки sKletka=List1.Cells[3,3].Text; то получил бы значение, но без цикла программа получится очень не производительная... Что можно сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2015, 18:53
Ответы с готовыми решениями:

Перебор листов Excel
Как перебрать циклом все листы в книге Эксель и вывести имя каждого листа? int SheetCount = OldBook->Sheets->Count;//Получить...

Нужна помощь EXCEL - VB!!! Получить названия листов.
Всем привет! Помогите с помощью VB получить название листов из EXCEL файла? Заранее всем спасибо.

Как получить имя текущей ячейки в Excel?
Подскажите, как получить имя текущей ячейки (определенное мной). Или как добраться до списка именованных ячеек. Заранее большое...

12
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
04.03.2015, 02:41
Купить дешевый комп и дать дупля на нем !!!

Добавлено через 4 минуты
Прием.Прием.Я шестой .Как слышно?
1
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
04.03.2015, 06:54  [ТС]
6й я 7й прием. Я не это спрашивал, вопрос был про подстановку. Протрите монитор, у Вас плохая видимость в районе Заголовка. 7й на связи, прием...
7
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
04.03.2015, 14:38  [ТС]
Прилагаю код, к вопросу в шапке. Код написан на Visual Studio 2010 express.
Повторяю вопрос еще раз, может быть в первый раз получилось не очень понятно...
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
...
Put = @"c:\prob\primer.xls";
            XL1 = new Excel. Application ();
...
//имеется несколько листов
 List1 = (Excel. _Worksheet) Листы. get_Item (1);
 List2 = (Excel. _Worksheet) Листы. get_Item (2);
 List3 = (Excel. _Worksheet) Листы. get_Item (3); //и т.д
...
//и хочется эти листы перебирать в цикле
nRov1 = 3;    //начало 1й строки в таблице
            nRov2 = 500;  //конец строк в таблице (можно с запасом)
            nKol1 = 3;   //начало 1й колонки в таблице
            nKol2 = 8;   //конец таблицы (можно с запасом)
            PodstList = 1;
 
            for (nKol = nKol1; nKol < nKol2; nKol++)       //перебор колонок таблицы
            {
                for (nRov = nRov1; nRov <= nRov2; nRov++)       //Перебор строк таблицы
                {
 
                    sB0 = "List" + @PodstList + ". Cells [" + @nRov + "," + @nKol + "]. Text;";    //  sB0 и sC0 - строки одинаковые!!!
                    sC0 = List1. Cells [3, 3]. Text; //эта строка считывает значение ячейки,
// а следующая строка - нет. В чем ошибка?
                    sKletka = @"sB0";
                }
            }
...
6й не выходит на связь, может еще кто знает C#?
Вложения
Тип файла: zip primer.zip (64.5 Кб, 11 просмотров)
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
04.03.2015, 15:02
вроде так, не проверял

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
void button1_Click(object sender, EventArgs e)
        {
            var path = @"c:\prob\primer.xls";
            var excelApp = new Excel.Application(); //ОБЩАЯ ФУНКЦИЯ ВЫБРАТЬ ЕКСЕЛЬ
            var workBook = excelApp.Workbooks.Open(path);
 
            var sheetsCount = workBook.Sheets.Count;
 
            for (var i = 0; i < sheetsCount; i++)
            {
                var startCellX = 2;
                var startCellY = 2;
                var endCellX = 20;
                var endCellY = 40;
 
                var sheet = (Excel.Worksheet) workBook.Sheets[i];
 
                for (var j = startCellY; j < endCellY; j++)
                {
                    for (var k = startCellX; k < endCellX; k++)
                    {
                        var value = (string)sheet.Cells[k, j];
                    }
                }
            }
        }
если начало таблицы на каждом листе начинается с разного места - заранее подготовить массив экзмепляров структуры/класса с описание данных начала и конца
2
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
04.03.2015, 15:06
Седьмой, Я шестой . На связи! Молчу потому-что не работал еще с Excel . Код изучаю.
0
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
05.03.2015, 15:15  [ТС]
Valera_21Спасибо, попробую разобраться.
0
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
05.03.2015, 23:47
Седьмой,объясните пожалуйста, как используются Excel.Вот что я нашел в интернете.
Microsoft Excel - редактор электронных таблиц - Microsoft Office.
Миниатюры
Перебор листов Excel: получить значение из текущей клетки  
0
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
06.03.2015, 13:21  [ТС]

Я, в экселе, беру исходные данные, в виде табличек, для расчета на СИ. Затем в СИ, все листы считываю в массивы . И далее пишу программу, уже только, используя массивы. Примеры, которые я выложил, это просто примеры, для того что бы задать вопрос (они из другой задачи, это графики). Мне не нужен редактор электронных таблиц. Задача более сложная... (эксель, только малая часть общей задачи) Я честно говоря, не понял, что Вы спрашиваете?

[
0
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
06.03.2015, 14:55
Работа с COM сервером Excel .
седьмой,вот такая информация в интернете.Я просто пытался понять для чего нужен Excel.Вроде понял.
Excel способствует синхронной работе разных программ при помощи Visual Studio .Я так понял???
0
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
06.03.2015, 16:03  [ТС]
6Й. Конечно нет. Любая задача ставится исходя из выполнения необходимых требований и наличия лицензионных программ, косвенно от опыта работы пользователей. Другими словами складываются вместе все плюсы и минусы и выбирается программное обеспечение, на котором можно выполнить поставленную задачу. Таких плюсов и минусов много, это производительность, стоимость, время обучения, затраты по сопровождению, лицензии... в каждой задаче свои особенности. Мне проще исходные данные вводить, через эксель. Но из этого невозможно сделать какие либо выводы... Программное Обеспечение, индивидуально в каждой задаче, и в каждом подходе...
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.03.2015, 16:06
вы тут вапще о чем?
0
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
06.03.2015, 16:20  [ТС]
Да, у нас сеанс связи с 6м... А у Вас какой позывной?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2015, 16:20
Помогаю со студенческими работами здесь

Как получить строку-родитель для текущей строки в файле Excel с группировками
Привет всем. Обхожу экселевский файл в цикле, в файле иерархическая структура многоуровневая с &quot;плюсиками&quot;, нужно узнать какая...

Получить значение текущей погоды в городе на PHP
Подскажите пожалуйста, как получить текущее значение температуры воздуха в городе? Мне нужно просто число, ну со знаком естественно....

Как правильно получить значение id текущей строки?
Допустим в BindingSourсe есть таблица с полями id, name. Как правильно получить значение id текущей строки(то есть выделенной строки...

Получить значение первой колонки в текущей строке dataGridView
На форме есть dataGridView1 и button1. Хочу сделать что бы событии Click по кнопке выполнялся такой код: ...

Как получить/записать значение столбца текущей строки
Добрый день. У меня есть две формы На Form 1 расположен DataGridView который выводит 2 столбца Number и Name из таблице requests, но в...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru