В строке 12 может быть ошибка, т.к. при разных языковых пакетах системы числа по дефолту пишутся по-разному. Будет ошибка - пробуйте так:
decimal got_dec = decimal.Parse(tb.GetCell(cell_with_number,i).Replace(",","."), CultureInfo.InvariantCulture); //Парсим число из столбца
Однако, перед этим...