Как прочитать значение ячейки из файла Excel с помощью ClosedXML

        string TablePath = Storage.ProjectPath + "\\Tables\\";
        string ObjectRepPath = TablePath + "ObjectRepository.xlsx";

        string locType = " ";
        string locParm = " ";

        var workbook  = new XLWorkbook(ObjectRepPath);
        var ws1       = workbook.Worksheet(1).RangeUsed().RowsUsed().Skip(1);
        var totalRows = ws1.Count();
        var row       = ws1.Row;

        for (int rCnt = 1; rCnt <= totalRows; rCnt++)
        {
            var objPage    = ws1.Cell(rCnt, 0).Value;
            var objElement = ws1.Cell(rCnt, 1).Value;


            if (objPage == page && objElement == element)
            {
                locType = ws1.Cell(rCnt, 2);
                locParm = ws1.Cell(rCnt, 3);
            }
        }

Я пытаюсь использовать ClosedXML для чтения из файла Excel. В каждой найденной ссылке написано, что вы можете использовать Worksheet.Cell(r,c), но она не содержит определения для.Cell. Ни один не для.Row. Я пытался включить "использование" операторов для всего под ClosedXML, но это тоже не сработало. Что мне не хватает?

Произошла ошибка... IEnumerable[IXLRangeRow] не содержит определения для Cell, и метод расширения Cell не может принять первый аргумент типа IEnumerable[IXLRangeRow] (вы пропустили директиву using или ссылка на сборку?)

Ошибка как на ws1.Cell, так и на ws1.Row

Ссылки, которые поддерживают это, должны работать... - Чтение из файла Excel с использованием ClosedXML- https://github.com/closedxml/closedxml/wiki/Cell-Values

1 ответ

Хорошо, нашел решение. Спасибо @Crowcoder за руководство...

        var workbook = new XLWorkbook(ObjectRepPath);
        var rows     = workbook.Worksheet(1).RangeUsed().RowsUsed().Skip(1);

        foreach (var row in rows)
        {
            var rowNumber  = row.RowNumber();

                objPage    = row.Cell(1).GetString();
                objElement = row.Cell(2).GetString();

            if (objPage == page && objElement == element)
            {
                locType = row.Cell(3).GetString();
                locParm = row.Cell(4).GetString();
            }
        }
Другие вопросы по тегам