Нахождение пары значений в Excel с использованием C # - PullRequest
0 голосов
/ 27 июня 2019

Я хочу найти строку в листе Excel, где столбец A и столбец B соответствуют моим условиям. Столбец C содержит значение, которое я хочу получить. Пример: у меня есть следующая таблица (извините, HTML-теги для таблицы не работают):

СтолбецA СтолбецB СтолбецC
A X 1
A Y 2

Я хочу получить строку, где столбец A - это «A», а столбец B - «Y», и получить соответствующее значение из столбца C, в данном случае «2».

Я уже могу найти первую запись для "A", которая находится в первом ряду. Я использую excel.rangeFind. Тем не менее, я хочу знать строку, где столбец A - это «A», а столбец B - «Y».

``

Excel.Range excelRangeA= workSheet.Columns["A:A"];
var rngFind = excelRangeA.Find("A");
string value= (excelApp.Cells[rngFind .Row, 3] as Excel.Range).Value;

``

Мой код дает мне значение 1 из столбца C. Но я хочу получить значение, где столбец A - это «A», а столбец B - «Y», поэтому я хочу получить значение «2» из столбца C ..

У кого-нибудь есть идея? Я думаю, что это может работать с excel.range.findNext. Это то, что я пробовал до сих пор:

Excel.Range excelRangeA= workSheet.Columns["A:A"];
var rngFind = excelRangeA.Find("A");

if (excelApp.Cells[rngFind.Row, 1].Offset[0, 1].Value == "Y")
        {
            string value= (excelApp.Cells[rngFind.Row, 3] as Excel.Range).Value;

            MessageBox.Show(value);
        }
        else
        {
            rngFindParam = excelRangeA.FindNext("A");
        }

1 Ответ

0 голосов
/ 27 июня 2019

Попробуйте это:

Excel.Range excelRangeA = workSheet.Columns["A:A"];
var rngFind = excelRangeA.Find("A");
var found = false;
while (rngFind!=null || !found)
{
    if (rngFind.Offset[0, 1].Value == "Y")
    {
        string value = rngFind.Offset[0, 2].Value;
        found = true;
        MessageBox.Show(value);
    }
    else
    {
        rngFind = excelRangeA.FindNext(rngFind);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...