Работа с Excel из C# через COM Interop, часть 3, чтение данных

В предыдущей статье я рассмотрел простую запись данных в документ Excel. Теперь настала пора чтения. Само собой мы можем прочитать данные из ячейки по индексу, но из какой именно? Кроме простого чтения нам необходимо знать, какая часть документа заполнена данными.

При чтении значения надо учесть, что внутри ячейки сидит Object, который надо самостоятельно конвертировать в Range, при этом содержимое ячейки может быть null.

// ЧТЕНИЕ ЗНАЧЕНИЯ
public string GetCellValue(int rowIndex, int columnIndex)
{
    string cellValue = "";

    Excel.Range cellRange = (Excel.Range) _workSheet.Cells[rowIndex, columnIndex];
    if (cellRange.Value != null)
    {
        cellValue = cellRange.Value.ToString();
    }
    return cellValue;
}

Для получения количества строк и столбцов с данными можно использовать следующий код

int usedRowsNum = _workSheet.UsedRange.Rows.Count;

или соотвественно

int usedColumnsNum = _workSheet.UsedRange.Columns.Count;

Текущий вариант класса для работы с Excel из C# - ExcelDocument.cs.zip

Excel

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>