Возвращает интерфейс диапазона. Вы можете прочитать больше об этом на MSDN .
И, пока я нахожусь в этом, ячейки не имеют типа, так как я могу их использовать (некоторые числа, другие текстовые и т. Д.) В vba было довольно легко ...
Ячейки действительно имеют тип, но они просто объекты. Вы должны будете привести к тому, что хотите. Поэтому, если ячейка является текстовой, вам нужно будет сделать что-то вроде:
(string)xlSheet.Cells[row,col].Value2
или
xlSheet.Cells[row,col].Value2.ToString();
Вам бы также пришлось привести числовой тип, если бы вы знали, что это числа.
Редактирование на основе комментариев:
Так что, если вы хотите получить используемый диапазон, вы должны сделать это:
using Excel = Microsoft.Office.Interop.Excel;
Excel.Range range = xlSheet.UsedRange;
Это даст вам все из рабочего листа (я использовал переменную xlSheet, которая является Excel.Worksheet).
Теперь мы можем повторить это, выполнив:
int rows = range.Rows.Count;
int cols = range.Columns.Count;
for(int r=1; r <= rows; r++)
{
for(int c=1; c <= cols; c++)
{
Console.Write(range.Cells[r,c].Value2.ToString());
}
Console.WriteLine();
}
Это будет выполнять итерацию по всему диапазону и в основном копировать то, что находится в вашей электронной таблице в окне консоли. Надеюсь, это поможет. Я также написал сообщение в блоге о чтении электронных таблиц Excel с использованием C #, которое вы можете прочитать здесь , если хотите.