Как прочитать значение ячейки из файла 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();
}
}