Перебор листов 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];
}
}
}
}