2016-09-09 1 views
0

Моя ячейка excell содержит формулу Today(). и его отображение значения в формате mm/dd/yyyy. Теперь я пытаюсь прочитать ячейку с C#. И мой код выглядит следующим образом.Как читать ячейку excel с формулой Today(), используя C#?

_InputData = objSheet.get_Range(colNo + rowNo).Cells.Value; 

Выходной сигнал приходит в виде мм/дд/гггг 12:00:00 где, как клетка Excel показывал только мм/дд/гггг.

ответ

0

Почему бы вам просто не обрезать его до первого места? Возвращается ли строка?

Если это так:

_InputData = _InputData.Remove(_InputData.IndexOf(" ")); 
+0

Я не могу сделать обрезку как для разных случаев (например, когда формула не используется, а простой текст там в ячейке) это создаст проблему. – Arnab

1

Я предполагаю, что это потому, что ваш первенствует лист просто переформатировать визуально значение. Но лежащее в основе все еще одно и то же представление.

Если вы хотите отформатировать свою строку как «mm/dd/yyyy» Вы можете просто использовать метод ToString объекта DateTime.

//I'am guessing that _InputData is a type Object 
_InputData = objSheet.get_Range(colNo + rowNo).Cells.Value; 
var timeValue = DateTime.Parse(_InputData).ToString("mm/dd/yyyy"); 
+0

Решение выглядит хорошо. Но практично в течение месяцев 0-9 диапазон делает проблему. Сегодня() возвращается * m/dd/yyyy 12:00:00 AM, поэтому, когда я пытаюсь согласовать то же самое, что он делает другую проблему. за 10/10/2016 12:00:00 AM, timeValue получает значение от 00/10/2016. – Arnab

+0

Попробуйте «M/dd/yyyy» для формата. – XOR

Смежные вопросы