Перебор листов Excel: получить значение из текущей клетки - C#
Формулировка задачи:
PS. Сразу поясню, что у нас в деревне только один комп, в сельсовете, имеет доступ в интернет и на нем нет VisualStudio c#. Поэтому, все вопросы с работы, приходится задавать, переписывая с бумажки в блокнот. Если сделаю сейчас ошибку, то имейте в виду, что просто переписал с ошибкой... но это лирика, вот сам вопрос.
У меня в Экселе много листов с табличками и в коде программы было бы удобнее сделать цикл и в нем перебирать листы с подстановкой, но не получается, вот что я делаю...
в переменную sKletkaStr записывается верная строка с учетом подстановки = List1.Cells[3,3].Text;
но не могу понять, как мне в переменной sKletka получить значение из текущей клетки Экселя? Если бы я написал, просто без подстановки sKletka=List1.Cells[3,3].Text; то получил бы значение, но без цикла программа получится очень не производительная... Что можно сделать?
Листинг программы
- ...
- nRov=3; nKol=3; PodstList=1;
- Цикл
- ...
- sKletkaStr="List"+@PodstList+"".Cells["+@nRov+","+nKol+"].Text;";
- sKletka=@sKletkaStr;
- ...
Решение задачи: «Перебор листов Excel: получить значение из текущей клетки»
textual
Листинг программы
- 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];
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д