2012-02-14 4 views
3

Я использую C#, чтобы прочитать листы Excel и использовать следующий код для чтения значений:Тип значения в ячейке Excel

range = xlWorkSheet.UsedRange; 
object value = (range.Cells[rCnt, cCnt] as Excel.Range).get_Value(Type.Missing); 

В случае целое число появляется там (например, 2), а затем он показывает мне как float: 2.0

Как я могу узнать, есть ли там поплавок или целое число?

Более того, как я могу узнать, хранится ли строка в ячейке или целое или плавающее?

Благодаря Мотя

+0

Вы можете преобразовать запись в целое, а затем сравнить его оригинальное значение против вашего обращения. И то же самое с float – Doomsknight

+0

Из моего небольшого опыта работы с Excel он «вычисляет» тип за столбец. Если весь столбец является целым числом, каждая ячейка в столбце будет целочисленной. Если один из чисел с плавающей запятой, а остальные - целые числа, весь столбец станет 'float' и т. Д. Невозможно найти официальную документацию для этого, следовательно, только комментарий. –

ответ

1

Я не уверен, что Excel делает различие между целыми числами и плавает - вы можете ввести 1 в ячейку, а затем переместить десятичную точку делая его похожим на 1,00. Чтобы выяснить, является ли это число или нет, вы можете попробовать следующее:

var r; 
if (Int32.TryParse(value, out r)) 
{ 
    // r now stores int value 
} 

float.TryParse() также есть :)

+0

Спасибо, thats working – Moti

+0

Но что произойдет, если значение равно null? –