Thank you very much. The problem is solved.
Everything is qute simple. First, we read all the range of current worksheet into simple two-dimension array - worksheetValuesArray. After that we put all the values from that array into our container, converting the type of elements to double. Here's the part of corrected solution:
private void GetExcelData(string fullPath, List<double> arrForValues)
{
Excel.Application excelapp = new Excel.Application();
excelapp.Visible = false;
Excel.Workbook excelappworkbook = excelapp.Workbooks.Open(
fullPath,
Type.Missing, Type.Missing, true, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
Excel.Worksheet excelworksheet = (Excel.Worksheet)excelappworkbook.Worksheets.get_Item(1);
Excel.Range excelcells = excelworksheet.UsedRange;
object[,] worksheetValuesArray = excelcells.get_Value(Type.Missing);
for (int col = 1; col < (worksheetValuesArray.GetLength(1)+1); col++)
{
for (int row = 1; row < (worksheetValuesArray.GetLength(0)+1); row++)
{
arrForValues.Add((double) worksheetValuesArray[row, col]);
}
}
excelappworkbook.Close(false, Type.Missing, Type.Missing);
excelapp.Quit();
}</double>